{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install -U git+https://github.com/qubvel/efficientnet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "__file__ = 'EfficientNet-B5-9.6.10-01'\n",
    "__version__ = 'v10'\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0,1\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "from glob import glob\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import keras\n",
    "from keras.applications.inception_v3 import InceptionV3\n",
    "from keras.applications.xception import Xception\n",
    "from keras.applications.resnet50 import ResNet50\n",
    "from keras_applications.resnext import ResNeXt50\n",
    "from keras.applications.nasnet import NASNetLarge\n",
    "from keras.applications.inception_resnet_v2 import InceptionResNetV2\n",
    "from keras.models import *\n",
    "from keras.layers import *\n",
    "from keras.optimizers import *\n",
    "from keras.callbacks import *\n",
    "import PIL\n",
    "import time\n",
    "import efficientnet.keras as efn "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "path_data = '../garbage_classify/train_data_v2'\n",
    "batch_size = 32\n",
    "img_size = 456\n",
    "img_width = img_size\n",
    "img_height = img_size\n",
    "random_seed = 201908\n",
    "path_data_train = f'../tmp/data_train_{__version__}/'\n",
    "path_data_valid = f'../tmp/data_valid_{__version__}/'\n",
    "labels_file = '../tmp/labels_raw.csv'\n",
    "labels_file_extra = '../tmp/labels_extra.csv'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f032ba11f98>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEGCAYAAACevtWaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO29d3ib53X3/7lBgntvkZREam/L2t7ylDNtN47jxE6cxqmbNO2bNG3eOP21b5v2TX5N2iwntRMnTm1nOHYcJ3ZGbXnIlhJr25KsSWqLlLj3AIlxv3/geUCIxHgAggQEnM918SLw4AF5CwK+PM+5z/kepbVGEARBSC5s8V6AIAiCEHtE3AVBEJIQEXdBEIQkRMRdEAQhCRFxFwRBSELS470AgLKyMl1XVxfvZQiCIFxS7N27t0NrXR7osYQQ97q6Ovbs2RPvZQiCIFxSKKXOBHtM0jKCIAhJiIi7IAhCEiLiLgiCkIQkRM5dEARhPE6nk6amJhwOR7yXEneysrKora3Fbrdbfo6IuyAICUlTUxP5+fnU1dWhlIr3cuKG1prOzk6ampqor6+3/DxJywiCkJA4HA5KS0tTWtgBlFKUlpZGfAUj4i4IQsKS6sJuEs3rIOKeorjcHp7efRaX2xPvpQiCMAWIuKcoO0918cVfvcOOk13xXoogJCwPPfQQixcv5p577on3UiJGNlRTlPb+EQC6hkbjvBJBSFwefvhhXnnlFWpra+O9lIiRyD1F6Rz0inqviLsgBORTn/oUJ0+e5F3veheFhYV84hOfYOPGjcyZM4eHHnrId97tt9/O6tWrWbp0KY8++qjveF5eHl/4whdYunQpN910E7t27fI9/4UXXgDA7XbzhS98gbVr17JixQp+8IMfxGz9ErmnKJ0D3si9Z8gZ55UIQni+/NtDHD7fF9OfuaS6gH9+39Kgj3//+9/nxRdfZMuWLXzve99j8+bNbNmyhf7+fhYuXMinP/1p7HY7P/7xjykpKWF4eJi1a9fygQ98gNLSUgYHB7nhhhv4j//4D+644w7+8R//kZdffpnDhw9z33338f73v5/HHnuMwsJCdu/ezcjICFdddRW33HJLRCWPwRBxT1G6jMi9Z1jEXRCs8J73vIfMzEwyMzOpqKigtbWV2tpaHnroIX79618DcO7cORobGyktLSUjI4Nbb70VgOXLl5OZmYndbmf58uWcPn0agM2bN3PgwAGeffZZAHp7e2lsbBRxF6LHTMtI5C5cCoSKsKeLzMxM3+20tDRcLhevv/46r7zyCtu3bycnJ4eNGzf66tHtdruvhNFms/meb7PZcLlcgLdB6bvf/S6bNm2K+Xol556imGmZ3mHJuQtCtPT29lJcXExOTg5Hjx5lx44dET1/06ZNPPLIIzid3iCroaGBwcHBmKxNIvcUpUsid0GYNLfeeivf//73Wbx4MQsXLmTDhg0RPf+Tn/wkp0+fZtWqVWitKS8v5ze/+U1M1qa01jH5QZNhzZo1WoZ1TC/L/+Ul+h0u5lXk8crnr4v3cgRhAkeOHGHx4sXxXkbCEOj1UErt1VqvCXS+pGVSkBGXm36HN+cnkbsgJCci7ilI96BX0Auz7fQOj5IIV2+CIMQWEfcUpHPQu5k6pzwXp1szNOqO84oEITASeHiJ5nUQcU9BOge8m6lzy/MAqXUXEpOsrCw6OztTXuBNP/esrKyInifVMimIWSkzpzwXgJ6hUWqKsuO5JEGYQG1tLU1NTbS3t8d7KXHHnMQUCSLuKYjZwDSnzBu598qmqpCA2O32mHRqpiqSlklBOgdGSLcpZpXkAJKWEYRkRMQ9BekaHKU4N4OS3AxAyiEFIRkRcU9BOgdHKc3NoCjHO0m9RywIBCHpEHFPQToHRijNyyDLnkZGuk1y7jFk9+ku3vWdbQxLeakQZ0TcU5CuwVFKcr0OdUXZdnol5x4z9p3t4ciFPs50xcb8SRCiRcQ9BTHTMgBFOXbJuceQPof3tWzrG4nzSoRUR8Q9xTB9ZXzinp0hOfcYYl4FtfWLuAvxRcQ9xTB9ZUryvOJeKJF7TOnzibsjzisRUh0R9xTD9JUZi9wl5x5L+gy3TUnLCPHGkrgrpU4rpd5RSu1TSu0xjpUopV5WSjUa34uN40op9ZBS6rhS6oBSatVU/gOEyDB9ZUrzjA1VidxjSq9E7kKCEEnkfr3WeqWfMfyDwKta6/nAq8Z9gHcB842vB4BHYrVYYfKYvjIlvg3VDIadbhxOKd2LBb60jETuQpyZTFrmNuAJ4/YTwO1+x5/UXnYARUqpGZP4PUIMMX1lzLRMYba3kalPUjMxwVctIxuqQpyxKu4a2KyU2quUesA4Vqm1vmDcbgEqjds1wDm/5zYZxy5CKfWAUmqPUmqPuL5NH6avTEGWV9THulRF3GOBf1om1a1qhfhiVdyv1lqvwpty+YxS6lr/B7X3XRzRO1lr/ajWeo3Wek15eXkkTxUmgekrY7MpwFsKCeIvEwtGXG4cTg+F2XYcTo9vc1UQ4oElcddaNxvf24BfA+uAVjPdYnxvM05vBmb6Pb3WOCYkAP4NTOAXuQ9JrftkMefSzqvwWim3y6aqEEfCirtSKlcplW/eBm4BDgIvAPcZp90HPG/cfgH4mFE1swHo9UvfCHHG9JUxMXPukpaZPGZKZr4h7rKpKsQTK8M6KoFfK6XM83+utX5RKbUbeEYpdT9wBrjLOP8PwLuB48AQ8OcxX7UQNV2DoywvLvLdNyN3MQ+bPOamtBm5y6aqEE/CirvW+iRwWYDjncCNAY5r4DMxWZ0Qc8anZfIy00mzKbEgiAF949IyUusuxBPpUE0hxvvKACilKMqWRqZYYKZlqouyyban0SppGSGOiLinEON9ZUwKc+ySc48BZlqmMNtORUGmpGWEuCLinkKM95UxKcq2S849BpgNTIXZdirzs2jrk7SMED9E3FOI8b4yJkU5YvsbC3qHnWSk2chMt1FekEm7RO5CHBFxTyHG+8qYSM49NvQNuyjITkcpRUW+pGWE+CLinkKYvjJluRdH7oU5kpaJBX0OJwVG30BFfhYDIy4GR6RLVYgPIu4phM9XJvviCtii7Az6R1w43Z44rSw56Bt2+jx7KvK9f0AlehfihYh7CmH6yhgNaT7MRiZxhpwcfcNjkXtlQRaAbKoKcUPEPYUY38BkIs6QsaHP4fLZOVQUSOQuxBcR9xRivK+Mic9fRvLuk6J32ElBljflJWkZId6IuKcQXYOjlIzbTAVvKSRAr5RDRo3W+qK0TGG2nYx0m6RlhLgh4p5CBE3LSOQ+aYadblwe7bsKUkpRniflkEL8EHFPEQL5ypiMebqLuEeL6StjVssAVBZkinmYEDdE3FOEYL4yAPlZdpSSDdXJ0DfsrWc3I3fw1rqLp7sQL0TcU4QxX5mJOfc0Y6Zqr0xjihrTV8a/h0DMw4R4IuKeIoz5ykyM3MGbmpHIPXrMDl//tExFfia9w04cTne8liWkMCLuKUIwXxkT8ZeZHP6OkCYV+d5GJjEQE+KBiHuKEMxXxqQwJ0Mi90lgdvcW+Iu7r5Fp+jdVtdb8aNtJmnuGp/13C4mBiHuKEMxXxsTr6S4592jpNTZU87P8cu75pgXB9EfuLX0O/u/vj/Dc3qZp/91CYiDiniIE85UxkZz75OhzOMnNSMOeNvaRiqcFwXkjYpfIPXURcU8RgjUwmRRm2+kbduLx6GlcVfLg351qUpKTQbpN0RqHLtXmHofxXcQ9VRFxTxGC+cqYFGbb8WjoF//xqOj1s/s1sdkUZXHqUpXIXRBxTxGC+cqY+PxlpGImKvoczosqZUwq41Trbor7+Z5htJarsVRExD1FCJeW8fnLiHlYVJgj9sZTHqdB2aa4O5weXxmskFqIuKcAoXxlTMRfZnIESsuAd1M1HnXuTd3D2NO8m+fne8TfJhURcU8BQvnKmMjAjsnhPz/Vn4r8TDoHRxl1Te8Iw/M9w6yoLQIk756qiLinAKF8ZUwKs82cu1zCR4rHoxkYcQUUd3PcXsfA9EXv/Q4nfQ4Xa+qKARH3VEXEPQUI5ysDMo1pMvQ7XGiNbwqTP/GYyHSh15uGWTKjgJyMNF/+XUgtRNxTgHC+MgAZ6TZyM9IkLRMFgXxlTMa6VKcv721G6rXF2VQXZdPcLeKeioi4pwDhfGVMinIyJHKPgt4AvjImZpdq6zRG7makXl2UTU1RNud7RdxTEcvirpRKU0q9rZT6nXG/Xim1Uyl1XCn1tFIqwzieadw/bjxeNzVLF6wSzlfGpDDbLnNUo6AvwBQmk9LcDJSC9mmM3M/3DJNmU1TkZ0nknsJEErl/Fjjid/9rwLe01vOAbuB+4/j9QLdx/FvGeUIcCecrY1KUI7a/0RAqLZOeZpv2LtXzPQ6qCrJIsylqi7PpHBwVT/kUxJK4K6VqgfcAPzLuK+AG4FnjlCeA243btxn3MR6/UYVTFWFKCdfAZCLmYdFhjtgLdmVUkT+94t7cM0xNUTYA1UVZvmNCamE1cv828L8Bs1i3FOjRWptGJE1AjXG7BjgHYDzea5wvxIlwvjImhdmSc4+GUDl3MMV9GjdUu4epKTbEvdD7XSpmUo+w4q6Uei/QprXeG8tfrJR6QCm1Rym1p729PZY/WhhHOF8Zk6Icb85dvEgio8/hxKYgLyNY5J5F6zR5urs9mpY+hy9iN0VexD31sBK5XwW8Xyl1GvgF3nTMd4AipZT5bq4Fmo3bzcBMAOPxQqBz/A/VWj+qtV6jtV5TXl4+qX+EEBrLaZlsO063ZmhU8rOR0DfsJD/Ljs0WOPtYUZBJ58AI7mmwU27rd+D2aKqNtExlQRY2hWyqpiBhxV1r/SWtda3Wug64G3hNa30PsAW40zjtPuB54/YLxn2Mx1/TEgrGDSu+MiZiQRAdvcPOkJVIFQVZeLQ3PTbV+JdBAtjTbFQVZPn83SPlQu8w/Q55P1yKTKbO/YvA55VSx/Hm1B8zjj8GlBrHPw88OLklCpPBiq+MiWlB0CMWBBHR53AFrJQxmc4uVVPEzQ1V8Ap9c89QVD/vg9/fzr/97nBM1iZML6ELn8ehtX4deN24fRJYF+AcB/DBGKxNiAFWfGVMzMhdPN0joy+II6TJmLg78GYppw4zcp9RmOU7VlOczdtneyL+WT1DozR1D7OtsQOtddhSWiGxkA7VJMeKr4yJpGWiI5jdr0mFYR42HZuq53uGKchKJ99vPdVF2VzoHY54hOLxtgHA61XTJDn7Sw4R9yTHiq+MSZEvLSPiHgnBpjCZlOcZkfs0iXu1X0oGvOLudGvaI8z5m+IOsPNUV0zWJ0wfIu5JjlVfGfCP3CXnHgnBpjCZZKTbKMnNmJZa9+Yex0X5doBa436k0Xdj2wBZdhtFOXZ2npxQ8CYkOCLuSY5VXxmALHsamek2yblHwKjLw7DTHTItA9PXpXq+Z6yBycSM5COtdW9sG2BeRR5r60rYdVoi90sNEfckx9vAFN5XxkT8ZSLD5yuTE1rcy6dB3AdGXPQOOwOkZbw5/0jF/UTbAPPK81hfX8KZziFaemVc36WEiHuS02mIu1WKsjMkLRMBoRwh/amYhkHZ42vcTfKz7BRkpUfkLzM44qK5Z5j5lfmsr/e6h+w8JamZSwkR9yTHqq+MSaFE7hEx5isTOu1lDsqOtGIlEkzxrinKmvBYTXFORJH7iXbvZurc8jyWVBeQl5kum6qXGCLuSU7X4KilGneTomy7T7CE8PQ5vN55oaplACrzM3F5NN1T2CAWLHIHr+BHsqHa2OoV9/mVeaTZFGvqimVT9RJDxD3JiTgtI5F7RFhOyxi17lOZd/cf0jGemqLsiCL34+0D2NMUs0tyAFhfX8qJ9sFpHfQtTA4Rd4MRl5vNh1qSyhExEl8Zk6IcyblHQji7X5PpsCDwH9IxnuqibPocLss+MY2tA9SX5ZKe5pWI9XNKANglqZlLBhF3g82HWnngJ3s5dL4v3kuJGaavTGme9bRMYbYdh9Mjk3ssEmoKkz9mNN06hZuq/kM6xjNWDmnt9x9v62d+Rb7v/vKaQrLtaSLulxAi7gbtRkR1tKU/ziuJHaavTKRpGUDy7hbpG3aRkWYjMz30R8kclN0+xWmZ6gCbqTDm627FQMzhdHO2a4i5FXm+Y/Y0G6tnF7ND8u6XDCLuBqYTYmNrEol7BL4yJmJBEBmm3W+4PoIsexoFWelTVg7p9mhaeh0TGphMzIjeivXvqY5BPBrm+4k7wLr6Eo619otr6CWCiLtBtyFmDUkk7qavTGQ5d8OCQD7AluhzOMPm200qCrKmLOfe1u/A5TekYzzleZnY05SlTVXTU2beOHFfX1+C1rD7dPfkFyxMOSLuBmaJWkPrQJgzLx06feIeWc4dxBnSKuHsfv2ZSguCUGWQADabYkZhtqWJTI1tA9gU1JflXnT8splFZKTbpCQyQfj7X+4P+biIu4GZhmjuGWZwxBXm7EuDSHxlTCTnHhl9wxFE7vmZU7ahGmhIx3islkOeaBtgVkkOWfa0i45n2dNYObNIfGYSgJ0nO3l2b1PIc0TcDbqHRkk3Ssj8rU4vZSL1lYGxyF3Mw6wRbgqTP5VGWmYqym0DDekYj3cik5XIvZ95fpUy/myoL+Fgc6+M3osjHo/mK384QlVB8P9rEHH30TPkZEWtd0pOoufdtxxrY9O3tobdnIu0gQkgLzOdNJuSWneLeNMy1q6MyvMzGXV56BuO/ZVhoCEd46kpyqK1z4HT7Ql6jsvt4VTHIPMr8wI+vq6+FI+GPWck7x4vXth/ngNNvXxh08KQ54m4G3QPjbKi1ptTbEzwyP0Hb5zgWGs///LbQyHPi9RXBkApRVG2dKlaQWttVMtY31AFpsTXPdCQjvHUFGfj0YR0dzzTNYTTrZlXHljcV80uIt2mpN49Tjicbr7+4lGW1RRwx+U1Ic8VccfbyTk06qYsL4O55XkJHbmfbB9gx8ku5pTn8od3WnjpUEvQcyP1lTEpzLFP64bqb/ef50BT5DM+482w043Loy2nZaaySzXQkI7xWPF19/eUCURORjrLawtlUzVOPPbHU5zvdfD/vXsJtgCdyP6IuDO2mVqUk8H8ijzfGzwReXr3OdJsip/ev55FVfn8n+cP+rokxxNNWgYM87BpitzPdQ3x2V+8zb0/2snpjsFp+Z2xwkyvRFItA1PTpWopcvfVugcXd383yGCsry/lQFMvw6PWuphPtA8kVf9IvOgYGOGR109w0+JKrphbGvZ8EXfGyiCLczJYUJlHc88wAwlYMTPq8vDs3iZuXFRBdVE2X/vACtr7R/ja/xydcG40vjIm0+kv89MdZ1BKoZTigZ/sScjXPRhW7X5Npso8LNiQjvFYi9z7qSnKJjcz+L9pfX0JLo/mrbPh8+4dAyN86Afb+cuf7g17rhCab7/SgMPp5kvvXmTpfBF3xjxYinPszK/0VgkkYsXMK0da6Rwc5cPrZwHeuuNPXFXPz3aenZADjcZXxmS6cu7Do25+sfscm5ZW8l8fWcXxtgH+7pl9U+p5Hkus+sqY5GWmk5uRFvNB2RdMH/cg3akmWfY0yvIyQkbujW0DF9kOBGJNXTE2FX5ottaaB3/1Dh0Do5xsH+RsZ3jrAyEwx9v6eWrXOe5ZPyvkVZU/Iu6MdWMW5WSwwBD3RMy7P7XrLDVF2Vw7v9x37PO3LKC2OJsvPXfgIrOvaHxlTApzrKVleoedbPjqq/z67dD1tsF4fl8zvcNOPn5lPVfPL+Mf3r2Ylw618l9bjkf186Ybq3a//ni7VGOblmkKMaRjPN5yyMC/3+PRnGgfmGA7MJ78LDtLq8Pn3Z/efY5XjrRy7wZvMPJGY3vY9QXD4XRP+SSrROarfzhKTkYan71pgeXniLgzZj1QnGtnVkkOmem2hMsRnusaYltjBx9cU3uRpWtORjpfuWM5J9oHedhPFKPxlTEpys6gf8QVsmQO4NUjrbT0Ofj6i8cidpHUWvP4m6dZPKOAtXXFANx/dT13XF7DN15u4JXDrRGve7qxavfrz1TMUg3XnepPdWHwRqbmnmEcTk9YcQevz8zb53qC/r+f6hjky789zFXzSvnX9y9jZkk2bxxrC/tzg/H1F49x63e24QrznkxG/nS8g9eOtvHX18+LKFgTcefinHuaTRkVM4mVlnl69zlsCu5aM3PCY9ctKOfPLq/h4ddPcLTFa1kcja+Midml2hemYubFgy1k29O40OvgZzvPRvQ7dp3q4mhLPx+/cravyUopxf//Z8tZXlPI557el5CpMX/M18dqWgYMC4IYR6ChhnSMp6bYa0EQqJEqmKdMINbXlzDq8nCgqXfCY063h889vY+MdBv/+cHLsNkU1y0o580TnYy4IreS9ng0vztwnq7BUQ5fSB5Lbiu4PZr/+/sj1BRlc9+VdRE9V8Qdb1omy27ztVsvqMxLqMjd5fbwy73n2LiwImh09o/vXUJBtp0Hf/UObo+OylfGxGceFkLch0ZdvNHQzl1rarlybimPvH48ItuGx988TVGOndtWXlyrm2VP4wcfXU1muo0HntwTtBIoETBH7OVbbGKCsS7VWBJqSMd4qouyGXa6A+6pNLZ53/NWxH1tnXd4R6DUzPdeO87+cz185Y5lzCj0vl83LqhgaNTN3ihMx/Y39fhes6mur3d7dEIN7HnurSaOXOjji+9aNMEOIhwi7njTMsU5YxHu/Mp8zvc6EqbFesuxdlr7Rrh77cSo3aQkN4P/894l7DvXw5PbT0flK2PiMw8LkXff2tDOiMvDpmVV/P2mhXQMjPL4m6ct/fzzPcNsPtzKh9bODPiGrS7K5uF7VnG2a4jP/SJxN1h7h53kZKRhT7P+MarIz2Ro1B3TqqBQQzrGE6oc8njbAGV5mRTlhL/aK87NYFFV/gSfmbfOdvO9Lcf5s8treO+Kat/xK+aWYk9TvN4Qed79pUOtpNsUVQVZUz6k+xOP7+bj/707bEpyOhgadfGfm4+xcmYR71sxI+Lni7jjjdz939BmzjFROlWf2nWWivxMblhUEfK821ZWc92Ccv7jpWO809wbsa+Mifla9IYoh3zxYAvFOXbW1ZWwalYxNy6q4AdvnLBkOPbTHWfQWvPRDbODnrN+Tin//L4lvHa0jW+90hDxv2E66Bt2RpSSgbGhHbFMzYQa0jGeUOLe2BZ+M9WfdfUl7D3T7RPCwREXf/v0PqoKsviX25ZedG5uZjpr60p441hk4q61ZvOhFq6YW8q1C8rYfbpryv7YN7b280ZDO280tPMfLx2bkt8RCT/ceorWvhH+6b2Lo/oci7hjRu5jH1KzYuZ4hHn34VE3X/7tIY7EMC94oXeY14+18cE1tb55lsFQSvGVO5YBsK2xI6pKGfCWQkLwyH3U5eHVI23cvKTSt6bP37KAPoeLx7adDPmzHU43T+06y81LKqktzgl57r0bZnP32pl897Xj/M87F6L4l0wtfQ7rdr8mZl48VqkZc0iHlc1U8JvINM76V2vN8dYBSykZk/X1pQyNunmn2Zt3/7ffHeZs1xDf+tDKgK/LxoXlHGvt50JvBIO62wY42THILUurWFdfSs+Qc8qCrmffaiLdprhtZTWPbj0Z1/dcW5+DH2w9wbuXV7F6dklUP0PEHe+Gqn9aZqZRMRNpOeQbDW38959O85Ef7vBtbE6WZ3Y34dFw99pZls6vLc7h72/xGgpFUykD/gM7Aov7myc66B9xceuyKt+xpdWFvGf5DB774yk6B4IL1wv7z9M95LS0OaSU4su3LeXyWUX83S/3h/REiQfmFKZIiHWXanv/SMghHeMpzrGTZbdNqJhp6x+hf8QV1HYgEOvqx4Zmbz7Uwi92n+NT1831HR/PdQu8V56RRO+bjaqpmxdXst73+2JvfeBye/j1W81sXFjB1+9cwcqZRXzh2QO+jt3p5tGtJxl1efjirdYalgIRVtyVUllKqV1Kqf1KqUNKqS8bx+uVUjuVUseVUk8rpTKM45nG/ePG43VRr26a6Bly+gQNIM2mmFeRR0OEEcLWxg5yM9LITE/jnh/unHStvNujeXr3Wa6ZX8bMktBRrj/3XVnHxoXlrKsL36IciPwsO0oF31B96VALeZnpXDm37KLjf3vzfIadbr7/xomAz9Na88Sbp1lYmc8Vc6ytLTM9jW/etZKhUTfP72uO7B8yxfQNW7f7NTG7VGM1S7XZYgOTiVKKmgDWv6blRjDDsECU52cypzyXFw+28OBz77C0uoC/DVGHvaAyj6qCLN6IIO/+0qEWVs4soqowi9ribGYUTk3efdvxDtr6R7hzdS2Z6Wk8fM8qMtJtfOone6d9vsPwqJtn9pzj1mVVzC7NDf+EIFiJ3EeAG7TWlwErgVuVUhuArwHf0lrPA7qB+43z7we6jePfMs5LWDweTc+4yB28qZlIK2a2NbZzxdwynnpgA2k2xUd+uGNSVTdbG9s53+uwHLWbpNkUj//5Oj570/yofm+aTVGQZac3wKg9t0ez+VAr1y+qmLAZOq8in9svr+HJ7WcCRqZ7z3Rz6HwfH/Mrf7RCfVkuK2cW8fy+85H/Y6aQaNIyBVnpZKbbYpaW8Ym7xcgdvBvW4yP342alTASRO3hTM/vO9TA44uI7d68kI8SgcKUUGxeW88fGDksblud7hjnQ1MumpVW+56+rL2HXqa6YV7Q8u7eJ4hy7b1+ruiib7374ck60D/Dgc+9MawXN8/ua6XO4+NgVdZP6OWHFXXsxQ1i78aWBG4BnjeNPALcbt28z7mM8fqOKZjdgmuh3uPBoLorcweuKd6HXYbkU70znIOe6hrl2QRn1Zbk89cAGlFJ8+Ic7o67X/sWus5TmZnDzksqonj8ZioI4Q+453UXn4CiblgZe0+duXIDbo/neaxO7TB9/8zQFWelhrUoDcdvKag5f6EuoEtVI7H5NlFJUFGTGLMVkZUjHeGoCdKk2tg1QmG2nPEK7CtPA6h/evTjogA9/rltQTv+Ii7fPhncB3Ww4nvq/19bWldDWP8KZGFoZ9A45eflQK7etrLnoj9NV88r4u1sW8tv95y1Xgk0WrTVPbj/Doqp8X3NftFjKuSul0pRS+4A24GXgBNCjtdd2qpIAACAASURBVDavV5oA8xNbA5wzFuoCeoEJ1+BKqQeUUnuUUnva20NfpnUOTM30Gri4gcmf+cYb1apD5NbGDgCuMawB5pbn8dRfrAfgwz/cEXHurq3PwatH2rhzdW3IaGiqCOYv8+KhFjLSbWxcGLhyZ1ZpDnetnckvdp/lXNfYB7Cl18H/HGzhQ2tnkpMReXnme1bMwKa8OftEwOPRDIy4IhZ3gBW1RWxtbI+4qzcQVoZ0jKemKJuOgZGLfv/xNu9maqRx2HuWz+CZv7yCj10RvPLJnyvnlZFmU7zREL5bdfPhVuZV5DHHL1W03i/PHyteOHCeUbeHO1fXTnjs09fN5abFlXzl90fYMw3jBd86283hC3189IrIrm4DYUk1tNZurfVKoBZYB0Sf5R/7mY9qrddordeUl5cHPa9rcJQr//01frknOv+ScPjEPffiD8cC4/LUvFwNx7aGdmqKsqkrHcuNz6vI56m/WI/Wmg8/uoNTEVja/nJvEy6P5kMhatunksKcjAmRu9aalw62cO38MvJCuAb+zQ3zUErxnVcbfcd+tvMMHq356Ia6qNZTkZ/FVfPKeH7f+YRoMukfcaE1lqcw+XPPuln0DDn53YHJV2NYsfodj3n+Bb+rh+MRlkGapNm8qRKrQlSYbWf1rOKweffuwVF2nuqacIU4ryKPktyMmM5xfXbPORZV5bO0umDCYzab4ht3XUZNcTaf+flbMdsrCcaT28+Qn5nO7Ssjv7odT0Qhoda6B9gCXAEUKaXMd3YtYO52NQMzAYzHC4Got7cPn+9jxOXhDwenpizJ38vdn5nFOWTZbZZsCFxuD9tPdHLtgrIJb/L5lfn87JMbcHm8Am/Fs9zj0Ty9+xzr60suilqmE6+n+8U593eaeznf6/DlQIMxozCbj26YzXNvNXGifYARl7f88cZFFcwqtb4xPJ73XVbN2a4h9p2LbrBHU/dQzP4w9EXhK2NyxdxS5pTn8tMdZya9DitDOsYzvhyya3CUzsHRiMogJ8N1C8s52NwX0kDt1aNtuD16wntNKcXauuKYRe4Nrf3sb+rlztW1Qf9AFWbb+f69q+kddvI3T701Zf427f0j/OGdC3xgdW1Iy2WrWKmWKVdKFRm3s4GbgSN4Rf5O47T7gOeN2y8Y9zEef01P4hNllhRuP9FpeThAJARLy9jMihkLOd79TT30j7h8KZnxLKzK5+d/sZ4Rl5sP/3AHZzpDC/z2k52c7RriI+sj20iNJYFy7i8daiHNprhpcfg9gE9vnEuWPY1vvdzA7w9coGNgNGJvjPHcuqyKjHRbVKmZt852c83Xt8REUGHMNCzSahnwCtS962ez71wPB5snerNEQjSRe804X/dIPGViwXULvJ+TbQ0dQc956VALMwqzWF5TOOGxdfWlnO0aiqhePhi/2uutbb89zD7Q4hkFfPWO5ew42TVlDU6/2HUWp1vzUYsprnBYidxnAFuUUgeA3cDLWuvfAV8EPq+UOo43p/6Ycf5jQKlx/PPAg5NZoCmuIy4PO6ZgtJfPETJn4od0QUW+pZz7tsYOlIIrQ0xHWVRVwM8+uYFhp5uN//k6q//tZTZ9ayv3/mgnf/v0Pr7y+8M8uvUEz73VxA+2nqQoxx42Qp5KirLt9A47L+oGfPFgCxvmlFBsoTmqLC+TP7+qjt8duMA3X25gbnkuV88rC/u8UBRk2blhYQW/3X8Bd4Rdit977Thaw3dePR6TIMHcaI+0WsbkA6trybLb+NnO6P/YWB3SMZ6qwiyUGrMKjsRTJhYsmVFAWV5m0NTM8KibbY3t3LKkMmA0Hau8u8vt4bm3vbXtZRY2kv9sVS33bpjFD7aejPrqMdRafr7LW/Zs1a89HFaqZQ5orS/XWq/QWi/TWv+rcfyk1nqd1nqe1vqDWusR47jDuD/PeDx0y2IYjrX0s7aumGx7Gq8djd4yNBg9Q6PYVOAP6fzKfFr6HGFb6rc1drCitiisJ8eS6gJ+9ekr+V83zGfTsipml+YwOOpiz5kufrLjDF/9w1E+/8x+tja0c+eq2oiNgmJJYU4GWnuricC793CifZBbI/iD88A1c8nPSqepe5iPX1k36Q0i8FbNdAyMsP2E9T/0B5t7ee1oGzctrqRjYIQntp+e9Dr6IpzCNJ7CbDvvv6ya37x9PmpztAs+q1/rlTIA9jQblflZF0XuORlpVBdG9kciWmw2xbULytja2B7wj/QbDe04nJ6gwc3iGQXkZaZPWty3NXbQbtS2W+XzN3sbBGM9Q/aVI61c6HWEtOSIlMkndqYQj0fT0DrA3etmUpidwZZjbWitYyISJt1DoxRm2wMOmzU3mI639QdtAe5zONl3rodPXzfX0u+bW57H3948sdFDa83gqJv2/hG6BkcDbu5MJz4LguFRCnPsvHjQW5Z2SwTiXphj57M3zueH205yxyrrH6BQXL+ogvzMdJ7f18zV861dCfzXluPkZ6XzzQ9dxt/8/G2+/8YJ7lk/K6IKk/GY81OjScuY3LthNs/saeLXbzVHlbIya9xrLTYw+VNdlOXLuZuVMuEGLseS6xaU89xbzRxo6uHyWReX/G0+1EJhtj1op2uaTbEmBnn38bXtVijJzaCmKJuD52NrPfzk9jPUFGVzo4WUp1US2n7gXPcQw043i6ryuX5ROU3dwzFvBx7vCOmP6TETKjWz/UQnbo/mGotCEwylFHmZ6dSX5bJ6dnFco3aYaEHw4qEWVs0qorIgsijxk9fMYceXbgxZXRMJWfY0Ni2r4sWDLZZKCRtb+3nxUAsfv7KOgiw7f3/LQnqGnDz2x1OTWocvLTMJcV9RW8SK2kKfkVqknDdq1SNNywDUFOdwvtdP3Kd54/7a+eUoxYTUjNPt4ZUjrdy4uCKkl9K6+hIa2wZCWl2EomdolJcPT6xtt8KymoJJ75X4c7ytnzdPdPKR9bMs2TZbJaHF/WiLNxe4oDKf64266i1Hox/VFQivI2TgD2htcTbZ9rSQFTPbGtvJzUibEH1c6vh7up/rGuJgc99FXjKREOsetvdfVk3/iIvXLUz2efj1E2Tb0/jzq+oBWF5byKallfxo2ym6B6MfAt477EQpyIuiZt+fe9fPprFtIKootLlnyPKQjvFUF2VxocebcrzQ64i4M3WyFOdmcFltEa+P85nZdaqLPocr7H6TmXffHYU/PMBv9wevbQ/HsupCTnUMxmzWwE+2nyEjzRbS0jsaElrcG/zEvboom0VV+THPu3cPBo/czYqZxhC17tsaO9gwpzQujUZTSWG29zXpGRrlJV+nYPw2eP25cm4pZXkZYe0IznQO8vy+Zu5ZP+sih8y/u2Uhg6MufrA1+u2gvmGv9cBkUxnvu6yagqx0fhrhJCuIbEjHeGqLshl1e3y54+mO3MGbmtnf1HPRH9mXDrWQZbddNCc4EMtrishMt0Wdmnl2bxOLZxSwLEA1TjiW1XqfczgGqZmBERe/equZ96yYEdUw+1AktCIdbe1nZkm2r+Zz48IKdp/uiukQjfFe7uOZXxm8HPJs5xBnOocmnZJJRMzIvXfYyUuHWlg8o2BSJkaxJD3NxntXVPPq0baQ74VHXj9BepqNv7hmzkXHF1Tmc9tl1Tz+5qmoh1X3OVxRb6b6k52RxgdW1/LiwQsRN8hEMqRjPGYqx0yLzK8Mbx0QazYuLEdrr2kXePfYNh9q5boF5WRnhE5LZqTbuHxWEbtOR76x6V/bHg3Lqr3iHovUzK/fbmZgxBWz8kd/ElrcG1r6WVg5trF4/cJyXB7Nn44Hr4+NlPFe7uNZUJlPa99IwIqZbce9H4yrw0QZlyLmRmFj6wB7znQH9ZKJF+9fWc2oy8NLhwIP0j7fM8yv3mri7rUzfU6M/nzupgU43ZqHtwR2sAxH73DkpmHBuHfDbJxuzTN7zkX0vEiGdIzHbGR6o6GdjDQbM6PYlJ0s3gozuy+99k5zLy19Dm5ZYu0KcV19KYfP90Uc7Jm17betrA5/cgDK8zOpKsjy+dhHi9aan2w/zbKaAi6fWTSpnxWIhBX3EZebkx2DLKoaiyhWzy4mPys9Znl3h9PNsNMdsm7btCEIZFi1raGD6sIs5pYnRkQbS+xpNvIy03lh/3m0Jup8+1Rx+cwiZpZkB7UBfnTrSbSGvwxSxVRXlssHV9fy851nA04lCkc0U5iCMbc8jyvnlvLznWct1+9HOqRjPObzmrqHmVOeG3YQzFSQZlNcM7+crQ0deDza1yR342Jr1Svr60vwaK/bqFXM2vbrF1mrbQ/GsprCSUfuO0910dA6wMc2xKZMeDwJK+4n2gZxezQL/MQ9Pc3GtQvKfSWRk2XMeiD4h9Q0EBu/qepye3jzRAfXzC+fkv+YRKDQaGSqK81hYRwu20OhlOL9l1Xzp+MdE9IZbf0Ontp1lg+sqg2ZtvibG72WyN/188CxSjR2v6G4d8NsmnuGLW0SQ+RDOsZTkGX3DfaeO03NS4HYuKCcjoERDl/o46VD3iY5KzNcAS6fVUS6TUWUd4+mtj0Qy2sKOdkxOKlZuE9uP01htp33XRbdFUQ4ElbczTy3f+QOcP3CCtr6RzgUg82MYNYD/tQUeStmxm+qHmjupc/hslxrfSli/tHbtKwqIf+A3bayBo+G3x+4eGP1sW2ncLo9fHpj6N6DmqJsPrJ+Fr/c22TJ88efaKYwheLmJZVU5GdatkeIxsd9POZzozEMixXXLPB+fn78x1OcaB+0nJIByMlIZ3ltYUTi/uzeJkpyM3zVd9GyrKYArYl6pGZLr4OXDrVy15rasPsL0ZKw4n60pR97mqK+7OKUh+lLYTXCCYUp7qEid5tNMb8yb0Kt+x8Ny4GrJtlSn8iYr0skXanTyYLKfBZV5fO8n9dM9+AoP91xhvddVk1dWfh02V9dPxd7muLbEQ7hjmYKUyjsRinc6w3tF1klB+O8rzs1enGv9ol7/K7KKvKzWFpdwHNve9Nrt0S4t7OuvoT9TT2Weh7GaturJ13dZnrevNMUXWrm57vO4tGae2PYkTqehBX3htZ+5pbnYR+XCyzPz+Sy2sKYlET2+HxlQl8Gzq/In1Axs62xneU1hVEPob4UqCzIoqYom8tqY7/ZEytuW1nD22d7OGsMb/jvN08zOOrmM9fPs/T8ivwsPn5lPc/vP295LOKoy8Ow0x3TtAzA3etmofB+8MNxPkrrAX/MyH26PGWCsXGhN2C7rLaQGRFaIKyvL8Hp1mGHf2it+dqLR6OubR9PRUEWFfmZUeXdXW4PT+06y8YF5VNagZaw4n6spd/XITqejQsrePtcD12TaEIBa2kZ8G6qtvWP0Gv8Meh3OHnrbM+kjbASnX98zxKe+dQV09qWHinvu2wGAL894PVoefxPp7h1aVXQ904g/vLaOeRlpPPNzdai91h0pwai2mg/f2b3OUZcwSPR0x2D/OlEZ8RDOsazoraQ8vxM6sqit2GOBebg7EisLUxWzy5BqfAmYt9+pZGndp3jrzbOZWl15LXtgVhWU8jB85GL+/6mHtr7R/izGFlyBCMhxb3f4aS5Z5iFVYE/oNcvqvDWxzZOrmrGyoYqjNkQNBh59x0nuwzLgeQrgfTH9NFIZGqLc1gzu5jfvN3MT7afoc/h4q9vsBa1mxTnZnD/NfW8eKjF0mV23yTsfsNx74bZdA6O+rx8wBt1Hm3p49uvNHDrt7ey8T9fZ2tDOzdNcvzinatr2fmlG8lMj6/Vxdq6Yr7xwcui8tcpzLazuKogZL37T3ac4TuvNnLXmlq+sGnhJFZ6MctqCjneNsDQaGSbqlsbOrApprw/JiHFPdhmqsmKmkJKczPYMsnUTPfgKNn2tLA+LvONckhzXdsa28m2p7FqduKmK1KJ21ZW09g2wH9tOc7GheVRdR3ef3U9RTl2vvFyeK/uPsMpM5YbqibXzCtjdmkOP9l+hn3nevj3/znK9f/5Ord+exvfebWRgiw7//TeJfzxi9fzzbtWTup3KaUS4qpMKcUHVtdG7T+0rr6EvWe6GXVNHKLxh3cu8H+eP8hNiyv46h3LY1oYsKy6AE8Um6pbG9stuchOloQU92Mt3s3LYJfWNpviuoXlvNEQ2DLUKuEamEyqC7PJyUjzbap6LQdK4h7xCF7evXwGaTbF0Kibv4kwajfJz7Lz8SvreP1YO619obtWzYa2WOfcwfvevmf9LPac6eb2//oTP9p2kpklOXzljmXs+oebeOZTV3D/1fXUFsc3lZJIrKsvweH0TEiRvHmig8/9Yh+rZxXz3Q+vinkt//Jas1PVurj3DjnZf66Ha6ehyi4hLX+PtfSRm5EW0sr0+oUVPPdWM/vO9bB6dnSmXeGsB0xsNsV8w2PmXNcQpzoGY+q7LEyO0rxM3rtiBoMjrqDWzFZ49/IZfPuVRl4+3BqyimEq0zIAH143iwu9DpZVF3LT4koKLQQgqczaurHhHasMA7+Dzb088ORe6spy+NF9a6ak3LCqIIuyvIyIOlX/dKIDj4ZrF0x9SjchI/ejLf0sqMoPeQl17fxybGpyJZHdQ6MTBmMHY35lPg2tA/zRsD5IRj+ZS5nv3H05P7pv7aR+xvyKPOrLcn1GacGYqg1Vk/wsO//8vqV8YHWtCLsFyvMzmVOey25jU/Vs5xAf/+/dFGSl88Qn1k1Z+kMpxdLqyDpVtzW2k5+ZzmVTYDcwnoQTd601Da39QfPtJoU5dlbPLp5USWTPkNPyf/yCyjza+0f47f7zVBVkxb18TIg9SiluWVrJ9hOdIadvTWVaRoiO9fUl7DrdRVufg4/+eCcuj4cn718XcWllpCyvKaSxbcBSnb3Wmq0NHVw5r3RCifdUkHDi3t4/QveQ01K7+/WLKjh0vi9sjjQY3UOjlnLuMOaa9+aJTq6ZX5aQHZvC5LllSRUujw65Wd837CIjzUaWPeE+PinLuvoS+h0u7nj4TVr7HPz442uZNw3NWctqCnF7tKVN1ZMdgzT3DE9blV3CvTuPGRUpC8JE7oCvhfiNY5GXRHo8mt7h4F7u4/Hf3E1my4FU5/KZRVTkZ7L5cPDUTJ/Daz0gf+ATh3X13uH0LX0OHrlntS/3PtUsq/G61loZu7fVsFe+bhry7ZCI4m4M6LASuS+qyqeqIIstUeTd+xxOPBrLaZnqwixyjU2ZZG9eSmVsNsXNSyp5/Vh70EvtWNr9CrHB9An6zt0ruT6Cmaix+L3FOXYOWuiP2NbYQV1pDjNLpqfSKSHFvSwv09JUEqUU1y8qZ1tjR8Aa11B0+6wHrH1IlVIsqS5gRW1hzCemCInFpqVVDI26+WNj4LkBfcPOKdtMFaLnq3cs570rpsZhMRhKKZbVFIatmBlxudl+onNaqmRMEk/cLWym+nP9wgoGRlzsORPZuC2r1gP+fPOulTx8z6qIfo9w6bFhTin5WelBUzPeKUwi7oKXZTWFNLT2h7SM2Humm2Gne1q72hNK3N0eb6VMJL4gV80rw56mJgzaDUePBUfI8cwsyZHmkRQgI93GDYsqeOVIGy73xCtC7/zUhGwREeLA8ppCXB7tSykHYmtDB+k2xRVzS6dtXQkl7ue6hnA4PRFF7rmZ6ayvL424JLJ70JojpJCabFpaRdfgKHsCTPmJ5RQm4dLHZ/8bIjWzrbGd1bOLo7ZYiIaEEvej5mZqBOIOcMXcUo63DUQ0SzGatIyQOly3oJyMdNuEhiattVEtI+IueKktzqYw2x7UhqDdGC40nfl2SDBxb2jtR6kxoy6rmAM9znSGH3Jg0jPkxKbwjRoTBH9yM9O5Zl4Zmw+1XjTScdjpxunWUi0j+PBuqhYE7VT9k9HVfu00u8gmlLgfa+lnVkkOORmRCW5daeTi3m34yiSCK56QmGxaWkVzz/BFIx37hr2OkJKWEfxZVl3IsZb+gFV7WxvaKcnNYGl1wbSuKbHEPcLNVJPZpd5NztOd1udgeq0H5AMqBOfGxRXYFGz2S82M+crIFZ8wxrKaQkbdngnTvLTWbG3s4Op5ZdMeSCaMuI+43JzqGIxoM9UkNzOd8vxMzkQg7l7rAcm3C8EpzctkTV0Jmw+3+o6Jr4wQCHNTdXxq5siFfjoGRuJiNBhW3JVSM5VSW5RSh5VSh5RSnzWOlyilXlZKNRrfi43jSin1kFLquFLqgFLKUmH4ibZB3B4dVeQOUFeaw+mOSNIy1rzchdRm09Iqjrb0+wKHqbb7FS5NZpXkkJ+ZPqFixpwWN92bqWAtcncBf6e1XgJsAD6jlFoCPAi8qrWeD7xq3Ad4FzDf+HoAeMTKQo61evOa0UTuALNLcyNMy1jzchdSm1uMUXZm1cxU2/0KlyY2m2JpTcEEj5mtje0srMynsiD6QeZRryncCVrrC1rrt4zb/cARoAa4DXjCOO0J4Hbj9m3Ak9rLDqBIKTUj3O852tJPRpqNurLopoHXlebQ1j9ieZ5hJI6QQuoysySHJTMKeOmQNzVjDkmXJiZhPMtrCjlyoQ+n0fg2POpm96lurl0QHy+qiHLuSqk64HJgJ1Cptb5gPNQCmNN6a4Bzfk9rMo6N/1kPKKX2KKX2tLe309DSz5zy3Kh9jusiKId0ON04nB6J3AVLbFpaxVtnu2nrd/jNT5XAQLiYZTWFjLo8HG/zjuPccaqTUbdnWi0H/LGspEqpPOBXwOe01hdde2hvIXBEw0y11o9qrddordeUl5dzrCUyT5nxjJVDhk/NSAOTEAmbllWiNbxyuI2+YSc5GWnTMmxBuLRYNq5TdVtDB5npNtbVRz/6cTJYeocqpex4hf1nWuvnjMOtZrrF+G72/zcDM/2eXmscC4pba873Oix5uAdjlq8cMnzkPmY9INGXEJ6FlfnMKsnhpUMtYvcrBKW+NJfcjDRfxczWxnbW1ZeQZY/9/FYrWKmWUcBjwBGt9Tf9HnoBuM+4fR/wvN/xjxlVMxuAXr/0TUBGDN/syUTuBVl2SnMzON0RPnIfMw2TyF0Ij1KKTUsrefNEB+d7h6VSRgiIzTY2U/V8zzDH2wambTBHwPVYOOcq4KPADUqpfcbXu4F/B25WSjUCNxn3Af4AnASOAz8E/ircL3A4vRsQ0ZZBmswuzbFUMePzcrc4HFsQNi2twunWbD/RKQ1MQlCW1RRy+EKfz6U2Xvl2gLDvUq31H4FgrVU3BjhfA5+JZBEOp5vSzHRqiiY3zLauNJftJzvDnic5dyFSLp9VTFleBh0Do5KWEYKyrKYAh9PD42+eorIgkwUR+mTFkoTYFXI4PSyoyp/0TMq6slwu9DrCTiKPxstdSG3SjPF7IA1MQnDMTtWG1gGumV8e1zm7iSHuLvekUzIw5jFztiv0pmr3kLfiITM9PhsdwqXJLUurACmDFIIzpzyPbGMDNR5dqf4khLi7PXpSm6kmZjlkuE1V8ZURouHKuaXUFGUzryJ+l9pCYpNm885aVgqunhef5iWThNkZikXk7hP3MJuq4ggpRENmehrb/vf1YhMthOSDq2tZVJVPSW58A8iEEfdIpy8FojDHTlGOPWytu0TuQrSIsAvhuHvdLO6O9yJIkLRMuk3F7K/c7NLcsF2qErkLgpDsJIS4F8fw8qXegvWvRO6CICQ7CSHuVTG0w5xdmsv53mFGXIHLId0eTe+weLkLgpDcJIS4x5K6shy0hnNdwwEf7xt2orVYDwiCkNwknbjPDlMO6etOFesBQRCSmKQT93DlkKavjETugiAkM0kn7sU5dgqy0oMO7egRXxlBEFKApBN3pRR1ZcHnqfocIWVDVRCEJCbpxB3MWvfQkbukZQRBSGaSUtzrSnNo6h5i1OWZ8Fj30ChpNiUDjgVBSGqSUtxnl+bi0dDUPTF67x5yUpRtj6sVpyAIwlSTlOJeZ1j/BkrN9AyNivWAIAhJT3KKe1nwcsjuQadUygiCkPQkpbiX5maQlxm4HLJ7aFQ2UwVBSHqSUtyVUkGHZfcMia+MIAjJT1KKO3g7VYNF7rF0oRQEQUhEklbcZ5fmcK5rCJd7rBxyeNTNiMsjG6qCICQ9SSvudaW5uDya5p4xd8husR4QBCFFSF5x91XMjKVmxsRdIndBEJKb5BV3X6372KZqjzhCCoKQIiStuJfnZ5JtT7to5J6kZQRBSBWSVtzNckj/yF0cIQVBSBWSVtzBu6l6yj8tMyiOkIIgpAZJLe6zy7zlkG6PBryRe25GGhnpSf3PFgRBSG5xry/NxenWnDfKIXvEekAQhBQhqcXdHJZtdqp6u1Ml3y4IQvITVtyVUj9WSrUppQ76HStRSr2slGo0vhcbx5VS6iGl1HGl1AGl1KqpXHw46sq85ZCmx0z3kDhCCoKQGliJ3B8Hbh137EHgVa31fOBV4z7Au4D5xtcDwCOxWWZ0VOZnkZlu81XMSFpGEIRUIay4a623Al3jDt8GPGHcfgK43e/4k9rLDqBIKTUjVouNFJvNWw55qsNMy4gjpCAIqUG0OfdKrfUF43YLUGncrgHO+Z3XZBybgFLqAaXUHqXUnvb29iiXER6vO+Qgbo+mz+GUyF0QhJRg0huqWmsN6Cie96jWeo3Wek15eflklxGUurJcznQN0T00itbSwCQIQmoQrbi3mukW43ubcbwZmOl3Xq1xLG7MLs1h1OXh6IV+QKwHBEFIDaIV9xeA+4zb9wHP+x3/mFE1swHo9UvfxIU6oxxy37luAPFyFwQhJUgPd4JS6ilgI1CmlGoC/hn4d+AZpdT9wBngLuP0PwDvBo4DQ8CfT8GaI2K24Q6571wPIJG7IAipQVhx11p/OMhDNwY4VwOfmeyiYsmMwmwy0mwi7oIgpBRJ3aEKkGZTzCrNoWPAMA2TDlVBEFKApBd3GBvckW5T5GeGvVgRBEG45EkJcTc9Zopy7Cil4rwaQRCEqSclxN2M3KWBSRCEVCElxN2M3KWBSRCEVCElxL3Ol5aRyF0QhNQgJcS9uigLe5qSyF0QhJQhJUpH+fJDsQAABe5JREFU0tNs/NN7l7CspjDeSxEEQZgWUkLcAT52RV28lyAIgjBtpERaRhAEIdUQcRcEQUhCRNwFQRCSEBF3QRCEJETEXRAEIQkRcRcEQUhCRNwFQRCSEBF3QRCEJER5hyfFeRFK9QPH4r0Oi5QBHfFehEVkrVODrHVqkLVGzmytdXmgBxKlQ/WY1npNvBdhBaXUHllr7JG1Tg2y1qnhUlirpGUEQRCSEBF3QRCEJCRRxP3ReC8gAmStU4OsdWqQtU4NCb/WhNhQFQRBEGJLokTugiAIQgwRcRcEQUhC4i7uSqlblVLHlFLHlVIPxns9oVBKnVZKvaOU2qeU2hPv9fijlPqxUqpNKXXQ71iJUuplpVSj8b04nms0CbLWf1FKNRuv7T6l1LvjuUZjTTOVUluUUoeVUoeUUp81jifc6xpirYn4umYppXYppfYba/2ycbxeKbXT0IKnlVJxH3ocYq2PK6VO+b2uK+O91gloreP2BaQBJ4A5QAawH1gSzzWFWe9poCze6wiytmuBVcBBv2NfBx40bj8IfC3e6wyx1n8B/j7eaxu3zhnAKuN2PtAALEnE1zXEWhPxdVVAnnHbDuwENgDPAHcbx78PfDqB1/o4cGe81xfqK96R+zrguNb6pNZ6FPgFcFuc13RJorXeCnSNO3wb8IRx+wng9mldVBCCrDXh0Fpf0Fq/ZdzuB44ANSTg6xpirQmH9jJg3LUbXxq4AXjWOJ4or2uwtSY88Rb3GuCc3/0mEvQNaaCBzUqpvUqpB+K9GAtUaq0vGLdbgMp4LsYCf62UOmCkbeKe6vBHKVUHXI43ckvo13XcWiEBX1elVJpSah/QBryM9wq+R2vtMk5JGC0Yv1attfm6fsV4Xb+llMqM4xIDEm9xv9S4Wmu9CngX8Bml1LXxXpBVtPe6MpEjjkeAucBK4ALwjfguZwylVB7wK+BzWus+/8cS7XUNsNaEfF211m6t9UqgFu8V/KI4Lyko49eqlFoGfAnvmtcCJcAX47jEgMRb3JuBmX73a41jCYnWutn43gb8Gu+bMpFpVUrNADC+t8V5PUHRWrcaHyIP8EMS5LVVStnxiuXPtNbPGYcT8nUNtNZEfV1NtNY9wBbgCqBIKWX6XSWcFvit9VYjDaa11iPAf5NgryvEX9x3A/ONXfIM4G7ghTivKSBKqVylVL55G7gFOBj6WXHnBeA+4/Z9wPNxXEtITLE0uIMEeG2VUgp4DDiitf6m30MJ97oGW2uCvq7lSqki43Y2cDPePYItwJ3GaYnyugZa61G/P+4K795A3F/X8cS9Q9Uozfo23sqZH2utvxLXBQVBKTUHb7QOXjfNnyfSWpVSTwEb8VqRtgL/DPwGbwXCLOAMcJfWOu4bmUHWuhFv6kDjrUr6S7+8dlxQSl0NbAPeATzG4X/Am8tOqNc1xFo/TOK9rivwbpim4Q0wn9Fa/6vxGfsF3jTH28C9RmQcN0Ks9TWgHG81zT7gU34brwlB3MVdEARBiD3xTssIgiAIU4CIuyAIQhIi4i4IgpCEiLgLgiAkISLugiAISYiIu5ByKKVClqwpper8HSst/szHlVJ3hj9TEKYHEXdBEIQkRMRdSFmUUnlKqVeVUm8ZPv3+jqTpSqmfKaWOKKWeVUrlGM9ZrZR6wzCPe2lcB6ggJAwi7kIq4wDuMMzgrge+YbSTAywEHtZaLwb6gL8yvFu+i9fHezXwYyBhupQFwZ/08KcIQtKigK8a7p4evBazpn3vOa31n4zbPwX+F/AisAx42fgbkIbXaVEQEg4RdyGVuQevP8hqrbVTKXUayDIeG+/LofH+MTiktb5i+pYoCNEhaRkhlSkE2gxhvx6Y7ffYLKWUKeIfAf4IHAPKzeNKKbtSaum0rlgQLCLiLqQyPwPWKKXeAT4GHPV77BjegSxHgGLgEWMU5J3A15RS+/G6AV45zWsWBEuIK6QgCEISIpG7IAhCEiLiLgiCkISIuAuCICQhIu6CIAhJiIi7IAhCEiLiLgiCkISIuAuCICQh/w/xqBVPBisN0wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "labels_train = pd.read_csv(f'../tmp/labels_train_{__version__}.csv')\n",
    "labels_valid = pd.read_csv(f'../tmp/labels_valid_{__version__}.csv')\n",
    "n_classess = labels_train.label.unique().shape[0]\n",
    "labels_train.groupby(by='label').count().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f032ad72d30>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "labels_train_extra = pd.read_csv(labels_file_extra)\n",
    "labels_train_extra.groupby(by='label').count().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f032a8c8828>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "labels_train = pd.concat([labels_train,labels_train_extra])\n",
    "labels_train.groupby(by='label').count().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels_train.label = labels_train.label.apply(lambda x: f'{x:02d}')\n",
    "labels_valid.label = labels_valid.label.apply(lambda x: f'{x:02d}')\n",
    "# labels_train['label_bin'].values = keras.utils.np_utils.to_categorical(\n",
    "#     labels_train.label, n_classess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "({0: 1.2008152173913043,\n",
       "  1: 0.846551724137931,\n",
       "  2: 1.3472560975609755,\n",
       "  3: 1.0252900232018562,\n",
       "  4: 1.2275,\n",
       "  5: 1.0158620689655173,\n",
       "  6: 0.7891071428571429,\n",
       "  7: 0.9798226164079823,\n",
       "  8: 1.3766355140186917,\n",
       "  9: 0.8369318181818182,\n",
       "  10: 0.9930337078651685,\n",
       "  11: 0.6488986784140969,\n",
       "  12: 1.4300970873786407,\n",
       "  13: 1.355521472392638,\n",
       "  14: 1.1301790281329924,\n",
       "  15: 0.8034545454545454,\n",
       "  16: 0.8275280898876405,\n",
       "  17: 1.2378151260504202,\n",
       "  18: 1.5185567010309278,\n",
       "  19: 1.133076923076923,\n",
       "  20: 1.4779264214046823,\n",
       "  21: 0.6498529411764706,\n",
       "  22: 1.2240997229916897,\n",
       "  23: 1.0965260545905706,\n",
       "  24: 1.0276744186046511,\n",
       "  25: 0.6413642960812772,\n",
       "  26: 0.7877005347593583,\n",
       "  27: 0.6340028694404591,\n",
       "  28: 0.6915492957746479,\n",
       "  29: 1.3310240963855422,\n",
       "  30: 1.037323943661972,\n",
       "  31: 1.363888888888889,\n",
       "  32: 0.8337735849056603,\n",
       "  33: 1.7127906976744185,\n",
       "  34: 0.9564935064935065,\n",
       "  35: 1.1911051212938006,\n",
       "  36: 2.4825842696629215,\n",
       "  37: 0.830639097744361,\n",
       "  38: 0.8909274193548387,\n",
       "  39: 1.0276744186046511},\n",
       " <matplotlib.axes._subplots.AxesSubplot at 0x7f04241a9898>)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.utils.class_weight import compute_class_weight\n",
    "class_weights = compute_class_weight('balanced', np.unique(labels_train.label), labels_train.label)\n",
    "d_class_weights = dict(enumerate(class_weights))\n",
    "d_class_weights,(labels_train.groupby(by='label').count()['fname'] * class_weights).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 17676 validated image filenames belonging to 40 classes.\n",
      "Found 2944 validated image filenames belonging to 40 classes.\n"
     ]
    }
   ],
   "source": [
    "ig = ImageDataGenerator(preprocessing_function=efn.preprocess_input,\n",
    "                        horizontal_flip=True,\n",
    "                        vertical_flip=True)\n",
    "\n",
    "params_g = dict(\n",
    "    batch_size=batch_size,\n",
    "    # directory=path_data,\n",
    "    # class_mode='other',\n",
    "    x_col='fname',\n",
    "    y_col='label',\n",
    "    target_size=(img_width, img_height),\n",
    "    interpolation='lanczos',\n",
    "    seed=random_seed)\n",
    "\n",
    "train_g = ig.flow_from_dataframe(labels_train, path_data_train, **params_g)\n",
    "valid_g = ig.flow_from_dataframe(labels_valid[:-(labels_valid.shape[0] % batch_size)], path_data_valid, shuffle=False, **params_g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/function.py:1007: calling Graph.create_op (from tensorflow.python.framework.ops) with compute_shapes is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Shapes are always computed; don't use the compute_shapes as it has no effect.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
     ]
    }
   ],
   "source": [
    "base_model = efn.EfficientNetB5(weights='imagenet', include_top=False, input_shape=(img_width, img_height, 3),pooling='avg')\n",
    "for layer in base_model.layers[:-285]:\n",
    "    layer.trainable=False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (None, 456, 456, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "stem_conv (Conv2D)              (None, 228, 228, 48) 1296        input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "stem_bn (BatchNormalization)    (None, 228, 228, 48) 192         stem_conv[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "stem_activation (Activation)    (None, 228, 228, 48) 0           stem_bn[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "block1a_dwconv (DepthwiseConv2D (None, 228, 228, 48) 432         stem_activation[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "block1a_bn (BatchNormalization) (None, 228, 228, 48) 192         block1a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1a_activation (Activation) (None, 228, 228, 48) 0           block1a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_squeeze (GlobalAvera (None, 48)           0           block1a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reshape (Reshape)    (None, 1, 1, 48)     0           block1a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reduce (Conv2D)      (None, 1, 1, 12)     588         block1a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_expand (Conv2D)      (None, 1, 1, 48)     624         block1a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_excite (Multiply)    (None, 228, 228, 48) 0           block1a_activation[0][0]         \n",
      "                                                                 block1a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_conv (Conv2D)   (None, 228, 228, 24) 1152        block1a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_bn (BatchNormal (None, 228, 228, 24) 96          block1a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_bn (BatchNormalization) (None, 228, 228, 24) 96          block1b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1b_activation (Activation) (None, 228, 228, 24) 0           block1b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_squeeze (GlobalAvera (None, 24)           0           block1b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_excite (Multiply)    (None, 228, 228, 24) 0           block1b_activation[0][0]         \n",
      "                                                                 block1b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_bn (BatchNormal (None, 228, 228, 24) 96          block1b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_drop (FixedDropout)     (None, 228, 228, 24) 0           block1b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_add (Add)               (None, 228, 228, 24) 0           block1b_drop[0][0]               \n",
      "                                                                 block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block1c_bn (BatchNormalization) (None, 228, 228, 24) 96          block1c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1c_activation (Activation) (None, 228, 228, 24) 0           block1c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_squeeze (GlobalAvera (None, 24)           0           block1c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_excite (Multiply)    (None, 228, 228, 24) 0           block1c_activation[0][0]         \n",
      "                                                                 block1c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_bn (BatchNormal (None, 228, 228, 24) 96          block1c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1c_drop (FixedDropout)     (None, 228, 228, 24) 0           block1c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_add (Add)               (None, 228, 228, 24) 0           block1c_drop[0][0]               \n",
      "                                                                 block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_conv (Conv2D)    (None, 228, 228, 144 3456        block1c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_bn (BatchNormali (None, 228, 228, 144 576         block2a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_activation (Acti (None, 228, 228, 144 0           block2a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_dwconv (DepthwiseConv2D (None, 114, 114, 144 1296        block2a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2a_bn (BatchNormalization) (None, 114, 114, 144 576         block2a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2a_activation (Activation) (None, 114, 114, 144 0           block2a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_squeeze (GlobalAvera (None, 144)          0           block2a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reshape (Reshape)    (None, 1, 1, 144)    0           block2a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reduce (Conv2D)      (None, 1, 1, 6)      870         block2a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_expand (Conv2D)      (None, 1, 1, 144)    1008        block2a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_excite (Multiply)    (None, 114, 114, 144 0           block2a_activation[0][0]         \n",
      "                                                                 block2a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_conv (Conv2D)   (None, 114, 114, 40) 5760        block2a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_bn (BatchNormal (None, 114, 114, 40) 160         block2a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_bn (BatchNormali (None, 114, 114, 240 960         block2b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_activation (Acti (None, 114, 114, 240 0           block2b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2b_bn (BatchNormalization) (None, 114, 114, 240 960         block2b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2b_activation (Activation) (None, 114, 114, 240 0           block2b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_squeeze (GlobalAvera (None, 240)          0           block2b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_excite (Multiply)    (None, 114, 114, 240 0           block2b_activation[0][0]         \n",
      "                                                                 block2b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_bn (BatchNormal (None, 114, 114, 40) 160         block2b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_drop (FixedDropout)     (None, 114, 114, 40) 0           block2b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_add (Add)               (None, 114, 114, 40) 0           block2b_drop[0][0]               \n",
      "                                                                 block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_bn (BatchNormali (None, 114, 114, 240 960         block2c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_activation (Acti (None, 114, 114, 240 0           block2c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2c_bn (BatchNormalization) (None, 114, 114, 240 960         block2c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2c_activation (Activation) (None, 114, 114, 240 0           block2c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_squeeze (GlobalAvera (None, 240)          0           block2c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_excite (Multiply)    (None, 114, 114, 240 0           block2c_activation[0][0]         \n",
      "                                                                 block2c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_bn (BatchNormal (None, 114, 114, 40) 160         block2c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2c_drop (FixedDropout)     (None, 114, 114, 40) 0           block2c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_add (Add)               (None, 114, 114, 40) 0           block2c_drop[0][0]               \n",
      "                                                                 block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_bn (BatchNormali (None, 114, 114, 240 960         block2d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_activation (Acti (None, 114, 114, 240 0           block2d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2d_bn (BatchNormalization) (None, 114, 114, 240 960         block2d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2d_activation (Activation) (None, 114, 114, 240 0           block2d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_squeeze (GlobalAvera (None, 240)          0           block2d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_excite (Multiply)    (None, 114, 114, 240 0           block2d_activation[0][0]         \n",
      "                                                                 block2d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_bn (BatchNormal (None, 114, 114, 40) 160         block2d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2d_drop (FixedDropout)     (None, 114, 114, 40) 0           block2d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_add (Add)               (None, 114, 114, 40) 0           block2d_drop[0][0]               \n",
      "                                                                 block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_bn (BatchNormali (None, 114, 114, 240 960         block2e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_activation (Acti (None, 114, 114, 240 0           block2e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2e_bn (BatchNormalization) (None, 114, 114, 240 960         block2e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2e_activation (Activation) (None, 114, 114, 240 0           block2e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_squeeze (GlobalAvera (None, 240)          0           block2e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_excite (Multiply)    (None, 114, 114, 240 0           block2e_activation[0][0]         \n",
      "                                                                 block2e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_bn (BatchNormal (None, 114, 114, 40) 160         block2e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2e_drop (FixedDropout)     (None, 114, 114, 40) 0           block2e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_add (Add)               (None, 114, 114, 40) 0           block2e_drop[0][0]               \n",
      "                                                                 block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_bn (BatchNormali (None, 114, 114, 240 960         block3a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_activation (Acti (None, 114, 114, 240 0           block3a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_dwconv (DepthwiseConv2D (None, 57, 57, 240)  6000        block3a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3a_bn (BatchNormalization) (None, 57, 57, 240)  960         block3a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3a_activation (Activation) (None, 57, 57, 240)  0           block3a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_squeeze (GlobalAvera (None, 240)          0           block3a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reshape (Reshape)    (None, 1, 1, 240)    0           block3a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block3a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block3a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_excite (Multiply)    (None, 57, 57, 240)  0           block3a_activation[0][0]         \n",
      "                                                                 block3a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_conv (Conv2D)   (None, 57, 57, 64)   15360       block3a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_bn (BatchNormal (None, 57, 57, 64)   256         block3a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_activation (Acti (None, 57, 57, 384)  0           block3b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3b_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3b_activation (Activation) (None, 57, 57, 384)  0           block3b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_squeeze (GlobalAvera (None, 384)          0           block3b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_excite (Multiply)    (None, 57, 57, 384)  0           block3b_activation[0][0]         \n",
      "                                                                 block3b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_bn (BatchNormal (None, 57, 57, 64)   256         block3b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_drop (FixedDropout)     (None, 57, 57, 64)   0           block3b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_add (Add)               (None, 57, 57, 64)   0           block3b_drop[0][0]               \n",
      "                                                                 block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_activation (Acti (None, 57, 57, 384)  0           block3c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3c_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3c_activation (Activation) (None, 57, 57, 384)  0           block3c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_squeeze (GlobalAvera (None, 384)          0           block3c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_excite (Multiply)    (None, 57, 57, 384)  0           block3c_activation[0][0]         \n",
      "                                                                 block3c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_bn (BatchNormal (None, 57, 57, 64)   256         block3c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3c_drop (FixedDropout)     (None, 57, 57, 64)   0           block3c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_add (Add)               (None, 57, 57, 64)   0           block3c_drop[0][0]               \n",
      "                                                                 block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_activation (Acti (None, 57, 57, 384)  0           block3d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3d_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3d_activation (Activation) (None, 57, 57, 384)  0           block3d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_squeeze (GlobalAvera (None, 384)          0           block3d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_excite (Multiply)    (None, 57, 57, 384)  0           block3d_activation[0][0]         \n",
      "                                                                 block3d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_bn (BatchNormal (None, 57, 57, 64)   256         block3d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3d_drop (FixedDropout)     (None, 57, 57, 64)   0           block3d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_add (Add)               (None, 57, 57, 64)   0           block3d_drop[0][0]               \n",
      "                                                                 block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_activation (Acti (None, 57, 57, 384)  0           block3e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3e_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3e_activation (Activation) (None, 57, 57, 384)  0           block3e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_squeeze (GlobalAvera (None, 384)          0           block3e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_excite (Multiply)    (None, 57, 57, 384)  0           block3e_activation[0][0]         \n",
      "                                                                 block3e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_bn (BatchNormal (None, 57, 57, 64)   256         block3e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3e_drop (FixedDropout)     (None, 57, 57, 64)   0           block3e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_add (Add)               (None, 57, 57, 64)   0           block3e_drop[0][0]               \n",
      "                                                                 block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block4a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_activation (Acti (None, 57, 57, 384)  0           block4a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_dwconv (DepthwiseConv2D (None, 29, 29, 384)  3456        block4a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4a_bn (BatchNormalization) (None, 29, 29, 384)  1536        block4a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4a_activation (Activation) (None, 29, 29, 384)  0           block4a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_squeeze (GlobalAvera (None, 384)          0           block4a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reshape (Reshape)    (None, 1, 1, 384)    0           block4a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block4a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block4a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_excite (Multiply)    (None, 29, 29, 384)  0           block4a_activation[0][0]         \n",
      "                                                                 block4a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_conv (Conv2D)   (None, 29, 29, 128)  49152       block4a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_bn (BatchNormal (None, 29, 29, 128)  512         block4a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_activation (Acti (None, 29, 29, 768)  0           block4b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4b_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4b_activation (Activation) (None, 29, 29, 768)  0           block4b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_squeeze (GlobalAvera (None, 768)          0           block4b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_excite (Multiply)    (None, 29, 29, 768)  0           block4b_activation[0][0]         \n",
      "                                                                 block4b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_bn (BatchNormal (None, 29, 29, 128)  512         block4b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_drop (FixedDropout)     (None, 29, 29, 128)  0           block4b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_add (Add)               (None, 29, 29, 128)  0           block4b_drop[0][0]               \n",
      "                                                                 block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_activation (Acti (None, 29, 29, 768)  0           block4c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4c_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4c_activation (Activation) (None, 29, 29, 768)  0           block4c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_squeeze (GlobalAvera (None, 768)          0           block4c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_excite (Multiply)    (None, 29, 29, 768)  0           block4c_activation[0][0]         \n",
      "                                                                 block4c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_bn (BatchNormal (None, 29, 29, 128)  512         block4c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4c_drop (FixedDropout)     (None, 29, 29, 128)  0           block4c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_add (Add)               (None, 29, 29, 128)  0           block4c_drop[0][0]               \n",
      "                                                                 block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_activation (Acti (None, 29, 29, 768)  0           block4d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4d_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4d_activation (Activation) (None, 29, 29, 768)  0           block4d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_squeeze (GlobalAvera (None, 768)          0           block4d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_excite (Multiply)    (None, 29, 29, 768)  0           block4d_activation[0][0]         \n",
      "                                                                 block4d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_bn (BatchNormal (None, 29, 29, 128)  512         block4d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4d_drop (FixedDropout)     (None, 29, 29, 128)  0           block4d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_add (Add)               (None, 29, 29, 128)  0           block4d_drop[0][0]               \n",
      "                                                                 block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_activation (Acti (None, 29, 29, 768)  0           block4e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4e_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4e_activation (Activation) (None, 29, 29, 768)  0           block4e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_squeeze (GlobalAvera (None, 768)          0           block4e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_excite (Multiply)    (None, 29, 29, 768)  0           block4e_activation[0][0]         \n",
      "                                                                 block4e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_bn (BatchNormal (None, 29, 29, 128)  512         block4e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4e_drop (FixedDropout)     (None, 29, 29, 128)  0           block4e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_add (Add)               (None, 29, 29, 128)  0           block4e_drop[0][0]               \n",
      "                                                                 block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_activation (Acti (None, 29, 29, 768)  0           block4f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4f_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4f_activation (Activation) (None, 29, 29, 768)  0           block4f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_squeeze (GlobalAvera (None, 768)          0           block4f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_excite (Multiply)    (None, 29, 29, 768)  0           block4f_activation[0][0]         \n",
      "                                                                 block4f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_bn (BatchNormal (None, 29, 29, 128)  512         block4f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4f_drop (FixedDropout)     (None, 29, 29, 128)  0           block4f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_add (Add)               (None, 29, 29, 128)  0           block4f_drop[0][0]               \n",
      "                                                                 block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_activation (Acti (None, 29, 29, 768)  0           block4g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4g_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4g_activation (Activation) (None, 29, 29, 768)  0           block4g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_squeeze (GlobalAvera (None, 768)          0           block4g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_excite (Multiply)    (None, 29, 29, 768)  0           block4g_activation[0][0]         \n",
      "                                                                 block4g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_bn (BatchNormal (None, 29, 29, 128)  512         block4g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4g_drop (FixedDropout)     (None, 29, 29, 128)  0           block4g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_add (Add)               (None, 29, 29, 128)  0           block4g_drop[0][0]               \n",
      "                                                                 block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block5a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_activation (Acti (None, 29, 29, 768)  0           block5a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_dwconv (DepthwiseConv2D (None, 29, 29, 768)  19200       block5a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5a_bn (BatchNormalization) (None, 29, 29, 768)  3072        block5a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5a_activation (Activation) (None, 29, 29, 768)  0           block5a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_squeeze (GlobalAvera (None, 768)          0           block5a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reshape (Reshape)    (None, 1, 1, 768)    0           block5a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block5a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block5a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_excite (Multiply)    (None, 29, 29, 768)  0           block5a_activation[0][0]         \n",
      "                                                                 block5a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_conv (Conv2D)   (None, 29, 29, 176)  135168      block5a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_bn (BatchNormal (None, 29, 29, 176)  704         block5a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_activation (Acti (None, 29, 29, 1056) 0           block5b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5b_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5b_activation (Activation) (None, 29, 29, 1056) 0           block5b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_squeeze (GlobalAvera (None, 1056)         0           block5b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5b_activation[0][0]         \n",
      "                                                                 block5b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_bn (BatchNormal (None, 29, 29, 176)  704         block5b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_drop (FixedDropout)     (None, 29, 29, 176)  0           block5b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_add (Add)               (None, 29, 29, 176)  0           block5b_drop[0][0]               \n",
      "                                                                 block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_activation (Acti (None, 29, 29, 1056) 0           block5c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5c_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5c_activation (Activation) (None, 29, 29, 1056) 0           block5c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_squeeze (GlobalAvera (None, 1056)         0           block5c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5c_activation[0][0]         \n",
      "                                                                 block5c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_bn (BatchNormal (None, 29, 29, 176)  704         block5c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5c_drop (FixedDropout)     (None, 29, 29, 176)  0           block5c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_add (Add)               (None, 29, 29, 176)  0           block5c_drop[0][0]               \n",
      "                                                                 block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_activation (Acti (None, 29, 29, 1056) 0           block5d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5d_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5d_activation (Activation) (None, 29, 29, 1056) 0           block5d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_squeeze (GlobalAvera (None, 1056)         0           block5d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5d_activation[0][0]         \n",
      "                                                                 block5d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_bn (BatchNormal (None, 29, 29, 176)  704         block5d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5d_drop (FixedDropout)     (None, 29, 29, 176)  0           block5d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_add (Add)               (None, 29, 29, 176)  0           block5d_drop[0][0]               \n",
      "                                                                 block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_activation (Acti (None, 29, 29, 1056) 0           block5e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5e_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5e_activation (Activation) (None, 29, 29, 1056) 0           block5e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_squeeze (GlobalAvera (None, 1056)         0           block5e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5e_activation[0][0]         \n",
      "                                                                 block5e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_bn (BatchNormal (None, 29, 29, 176)  704         block5e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5e_drop (FixedDropout)     (None, 29, 29, 176)  0           block5e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_add (Add)               (None, 29, 29, 176)  0           block5e_drop[0][0]               \n",
      "                                                                 block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_activation (Acti (None, 29, 29, 1056) 0           block5f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5f_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5f_activation (Activation) (None, 29, 29, 1056) 0           block5f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_squeeze (GlobalAvera (None, 1056)         0           block5f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5f_activation[0][0]         \n",
      "                                                                 block5f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_bn (BatchNormal (None, 29, 29, 176)  704         block5f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5f_drop (FixedDropout)     (None, 29, 29, 176)  0           block5f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_add (Add)               (None, 29, 29, 176)  0           block5f_drop[0][0]               \n",
      "                                                                 block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_activation (Acti (None, 29, 29, 1056) 0           block5g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5g_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5g_activation (Activation) (None, 29, 29, 1056) 0           block5g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_squeeze (GlobalAvera (None, 1056)         0           block5g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5g_activation[0][0]         \n",
      "                                                                 block5g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_bn (BatchNormal (None, 29, 29, 176)  704         block5g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5g_drop (FixedDropout)     (None, 29, 29, 176)  0           block5g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_add (Add)               (None, 29, 29, 176)  0           block5g_drop[0][0]               \n",
      "                                                                 block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block6a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_activation (Acti (None, 29, 29, 1056) 0           block6a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_dwconv (DepthwiseConv2D (None, 15, 15, 1056) 26400       block6a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6a_bn (BatchNormalization) (None, 15, 15, 1056) 4224        block6a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6a_activation (Activation) (None, 15, 15, 1056) 0           block6a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_squeeze (GlobalAvera (None, 1056)         0           block6a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block6a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block6a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block6a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_excite (Multiply)    (None, 15, 15, 1056) 0           block6a_activation[0][0]         \n",
      "                                                                 block6a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_conv (Conv2D)   (None, 15, 15, 304)  321024      block6a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_activation (Acti (None, 15, 15, 1824) 0           block6b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6b_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6b_activation (Activation) (None, 15, 15, 1824) 0           block6b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_squeeze (GlobalAvera (None, 1824)         0           block6b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6b_activation[0][0]         \n",
      "                                                                 block6b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_drop (FixedDropout)     (None, 15, 15, 304)  0           block6b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_add (Add)               (None, 15, 15, 304)  0           block6b_drop[0][0]               \n",
      "                                                                 block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_activation (Acti (None, 15, 15, 1824) 0           block6c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6c_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6c_activation (Activation) (None, 15, 15, 1824) 0           block6c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_squeeze (GlobalAvera (None, 1824)         0           block6c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6c_activation[0][0]         \n",
      "                                                                 block6c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6c_drop (FixedDropout)     (None, 15, 15, 304)  0           block6c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_add (Add)               (None, 15, 15, 304)  0           block6c_drop[0][0]               \n",
      "                                                                 block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_activation (Acti (None, 15, 15, 1824) 0           block6d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6d_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6d_activation (Activation) (None, 15, 15, 1824) 0           block6d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_squeeze (GlobalAvera (None, 1824)         0           block6d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6d_activation[0][0]         \n",
      "                                                                 block6d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6d_drop (FixedDropout)     (None, 15, 15, 304)  0           block6d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_add (Add)               (None, 15, 15, 304)  0           block6d_drop[0][0]               \n",
      "                                                                 block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_activation (Acti (None, 15, 15, 1824) 0           block6e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6e_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6e_activation (Activation) (None, 15, 15, 1824) 0           block6e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_squeeze (GlobalAvera (None, 1824)         0           block6e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6e_activation[0][0]         \n",
      "                                                                 block6e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6e_drop (FixedDropout)     (None, 15, 15, 304)  0           block6e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_add (Add)               (None, 15, 15, 304)  0           block6e_drop[0][0]               \n",
      "                                                                 block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_activation (Acti (None, 15, 15, 1824) 0           block6f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6f_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6f_activation (Activation) (None, 15, 15, 1824) 0           block6f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_squeeze (GlobalAvera (None, 1824)         0           block6f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6f_activation[0][0]         \n",
      "                                                                 block6f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6f_drop (FixedDropout)     (None, 15, 15, 304)  0           block6f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_add (Add)               (None, 15, 15, 304)  0           block6f_drop[0][0]               \n",
      "                                                                 block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_activation (Acti (None, 15, 15, 1824) 0           block6g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6g_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6g_activation (Activation) (None, 15, 15, 1824) 0           block6g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_squeeze (GlobalAvera (None, 1824)         0           block6g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6g_activation[0][0]         \n",
      "                                                                 block6g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6g_drop (FixedDropout)     (None, 15, 15, 304)  0           block6g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_add (Add)               (None, 15, 15, 304)  0           block6g_drop[0][0]               \n",
      "                                                                 block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6h_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_activation (Acti (None, 15, 15, 1824) 0           block6h_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6h_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6h_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6h_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6h_activation (Activation) (None, 15, 15, 1824) 0           block6h_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_squeeze (GlobalAvera (None, 1824)         0           block6h_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6h_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6h_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6h_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6h_activation[0][0]         \n",
      "                                                                 block6h_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6h_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6h_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6h_drop (FixedDropout)     (None, 15, 15, 304)  0           block6h_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_add (Add)               (None, 15, 15, 304)  0           block6h_drop[0][0]               \n",
      "                                                                 block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6i_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_activation (Acti (None, 15, 15, 1824) 0           block6i_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6i_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6i_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6i_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6i_activation (Activation) (None, 15, 15, 1824) 0           block6i_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_squeeze (GlobalAvera (None, 1824)         0           block6i_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6i_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6i_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6i_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6i_activation[0][0]         \n",
      "                                                                 block6i_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6i_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6i_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6i_drop (FixedDropout)     (None, 15, 15, 304)  0           block6i_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_add (Add)               (None, 15, 15, 304)  0           block6i_drop[0][0]               \n",
      "                                                                 block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6i_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block7a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_activation (Acti (None, 15, 15, 1824) 0           block7a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 16416       block7a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7a_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block7a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7a_activation (Activation) (None, 15, 15, 1824) 0           block7a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_squeeze (GlobalAvera (None, 1824)         0           block7a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block7a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block7a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block7a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_excite (Multiply)    (None, 15, 15, 1824) 0           block7a_activation[0][0]         \n",
      "                                                                 block7a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_conv (Conv2D)   (None, 15, 15, 512)  933888      block7a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_activation (Acti (None, 15, 15, 3072) 0           block7b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7b_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7b_activation (Activation) (None, 15, 15, 3072) 0           block7b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_squeeze (GlobalAvera (None, 3072)         0           block7b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7b_activation[0][0]         \n",
      "                                                                 block7b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_drop (FixedDropout)     (None, 15, 15, 512)  0           block7b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_add (Add)               (None, 15, 15, 512)  0           block7b_drop[0][0]               \n",
      "                                                                 block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_activation (Acti (None, 15, 15, 3072) 0           block7c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7c_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7c_activation (Activation) (None, 15, 15, 3072) 0           block7c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_squeeze (GlobalAvera (None, 3072)         0           block7c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7c_activation[0][0]         \n",
      "                                                                 block7c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7c_drop (FixedDropout)     (None, 15, 15, 512)  0           block7c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_add (Add)               (None, 15, 15, 512)  0           block7c_drop[0][0]               \n",
      "                                                                 block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_conv (Conv2D)               (None, 15, 15, 2048) 1048576     block7c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_bn (BatchNormalization)     (None, 15, 15, 2048) 8192        top_conv[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "top_activation (Activation)     (None, 15, 15, 2048) 0           top_bn[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "avg_pool (GlobalAveragePooling2 (None, 2048)         0           top_activation[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "dense_1 (Dense)                 (None, 40)           81960       avg_pool[0][0]                   \n",
      "==================================================================================================\n",
      "Total params: 28,595,480\n",
      "Trainable params: 26,331,176\n",
      "Non-trainable params: 2,264,304\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "x = base_model.output\n",
    "\n",
    "# x = Dense(128)(x)\n",
    "# x = BatchNormalization()(x)\n",
    "# x=Dropout(0.5)(x)\n",
    "\n",
    "DENSE_KERNEL_INITIALIZER = {\n",
    "    'class_name': 'VarianceScaling',\n",
    "    'config': {\n",
    "        'scale': 1. / 3.,\n",
    "        'mode': 'fan_out',\n",
    "        'distribution': 'uniform'\n",
    "    }\n",
    "}\n",
    "predictions = Dense(n_classess, activation='softmax',kernel_initializer=DENSE_KERNEL_INITIALIZER)(x)\n",
    "model = Model(inputs=base_model.input, outputs=predictions)\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(f'../tmp/model_{__file__}.json','w') as f:\n",
    "    model_json = model.to_json()\n",
    "    f.write(model_json)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.utils import multi_gpu_model\n",
    "model = multi_gpu_model(model,gpus=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "ckpt = ModelCheckpoint('../tmp/ckpt-'+__file__+'-Epoch_{epoch:03d}-acc_{acc:.5f}-val_acc_{val_acc:.5f}.h5', save_best_only=True, monitor='val_acc',verbose=1)\n",
    "\n",
    "estop = EarlyStopping(monitor='val_acc', min_delta=1e-7,verbose=1, patience=20)\n",
    "\n",
    "reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5,patience=3, min_lr=1e-5,verbose=1)\n",
    "\n",
    "csv_logger = CSVLogger(f'../tmp/training_{__file__}.log',append=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Epoch 1/100\n",
      "552/552 [==============================] - 587s 1s/step - loss: 1.1673 - acc: 0.6976 - val_loss: 0.4874 - val_acc: 0.8685\n",
      "\n",
      "Epoch 00001: val_acc improved from -inf to 0.86855, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_001-acc_0.69758-val_acc_0.86855.h5\n",
      "Epoch 2/100\n",
      "552/552 [==============================] - 538s 975ms/step - loss: 0.4344 - acc: 0.8707 - val_loss: 0.3631 - val_acc: 0.8893\n",
      "\n",
      "Epoch 00002: val_acc improved from 0.86855 to 0.88927, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_002-acc_0.87083-val_acc_0.88927.h5\n",
      "Epoch 3/100\n",
      "552/552 [==============================] - 568s 1s/step - loss: 0.3005 - acc: 0.9052 - val_loss: 0.3378 - val_acc: 0.8984\n",
      "\n",
      "Epoch 00003: val_acc improved from 0.88927 to 0.89844, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_003-acc_0.90524-val_acc_0.89844.h5\n",
      "Epoch 4/100\n",
      "552/552 [==============================] - 584s 1s/step - loss: 0.2083 - acc: 0.9337 - val_loss: 0.2941 - val_acc: 0.9110\n",
      "\n",
      "Epoch 00004: val_acc improved from 0.89844 to 0.91101, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_004-acc_0.93386-val_acc_0.91101.h5\n",
      "Epoch 5/100\n",
      "552/552 [==============================] - 578s 1s/step - loss: 0.1810 - acc: 0.9449 - val_loss: 0.3124 - val_acc: 0.9137\n",
      "\n",
      "Epoch 00005: val_acc improved from 0.91101 to 0.91372, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_005-acc_0.94480-val_acc_0.91372.h5\n",
      "Epoch 6/100\n",
      "552/552 [==============================] - 581s 1s/step - loss: 0.1399 - acc: 0.9551 - val_loss: 0.2975 - val_acc: 0.9158\n",
      "\n",
      "Epoch 00006: val_acc improved from 0.91372 to 0.91576, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_006-acc_0.95506-val_acc_0.91576.h5\n",
      "Epoch 7/100\n",
      "552/552 [==============================] - 583s 1s/step - loss: 0.1152 - acc: 0.9616 - val_loss: 0.2864 - val_acc: 0.9226\n",
      "\n",
      "Epoch 00007: val_acc improved from 0.91576 to 0.92255, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_007-acc_0.96152-val_acc_0.92255.h5\n",
      "Epoch 8/100\n",
      "552/552 [==============================] - 584s 1s/step - loss: 0.1001 - acc: 0.9675 - val_loss: 0.2995 - val_acc: 0.9202\n",
      "\n",
      "Epoch 00008: val_acc did not improve from 0.92255\n",
      "Epoch 9/100\n",
      "552/552 [==============================] - 580s 1s/step - loss: 0.0781 - acc: 0.9761 - val_loss: 0.3127 - val_acc: 0.9219\n",
      "\n",
      "Epoch 00009: val_acc did not improve from 0.92255\n",
      "Epoch 10/100\n",
      "552/552 [==============================] - 587s 1s/step - loss: 0.0793 - acc: 0.9749 - val_loss: 0.3115 - val_acc: 0.9164\n",
      "\n",
      "Epoch 00010: val_acc did not improve from 0.92255\n",
      "\n",
      "Epoch 00010: ReduceLROnPlateau reducing learning rate to 4.999999873689376e-05.\n",
      "Epoch 11/100\n",
      "552/552 [==============================] - 585s 1s/step - loss: 0.0571 - acc: 0.9827 - val_loss: 0.2910 - val_acc: 0.9243\n",
      "\n",
      "Epoch 00011: val_acc improved from 0.92255 to 0.92425, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_011-acc_0.98266-val_acc_0.92425.h5\n",
      "Epoch 12/100\n",
      "552/552 [==============================] - 582s 1s/step - loss: 0.0417 - acc: 0.9875 - val_loss: 0.2961 - val_acc: 0.9280\n",
      "\n",
      "Epoch 00012: val_acc improved from 0.92425 to 0.92799, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_012-acc_0.98759-val_acc_0.92799.h5\n",
      "Epoch 13/100\n",
      "552/552 [==============================] - 592s 1s/step - loss: 0.0405 - acc: 0.9874 - val_loss: 0.2940 - val_acc: 0.9263\n",
      "\n",
      "Epoch 00013: val_acc did not improve from 0.92799\n",
      "\n",
      "Epoch 00013: ReduceLROnPlateau reducing learning rate to 2.499999936844688e-05.\n",
      "Epoch 14/100\n",
      "552/552 [==============================] - 595s 1s/step - loss: 0.0351 - acc: 0.9899 - val_loss: 0.2756 - val_acc: 0.9321\n",
      "\n",
      "Epoch 00014: val_acc improved from 0.92799 to 0.93207, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_014-acc_0.98991-val_acc_0.93207.h5\n",
      "Epoch 15/100\n",
      "552/552 [==============================] - 594s 1s/step - loss: 0.0265 - acc: 0.9931 - val_loss: 0.2765 - val_acc: 0.9317\n",
      "\n",
      "Epoch 00015: val_acc did not improve from 0.93207\n",
      "Epoch 16/100\n",
      "552/552 [==============================] - 594s 1s/step - loss: 0.0249 - acc: 0.9920 - val_loss: 0.2908 - val_acc: 0.9304\n",
      "\n",
      "Epoch 00016: val_acc did not improve from 0.93207\n",
      "Epoch 17/100\n",
      "552/552 [==============================] - 594s 1s/step - loss: 0.0248 - acc: 0.9928 - val_loss: 0.2844 - val_acc: 0.9304\n",
      "\n",
      "Epoch 00017: val_acc did not improve from 0.93207\n",
      "\n",
      "Epoch 00017: ReduceLROnPlateau reducing learning rate to 1.249999968422344e-05.\n",
      "Epoch 18/100\n",
      "552/552 [==============================] - 594s 1s/step - loss: 0.0220 - acc: 0.9933 - val_loss: 0.2741 - val_acc: 0.9331\n",
      "\n",
      "Epoch 00018: val_acc improved from 0.93207 to 0.93308, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_018-acc_0.99337-val_acc_0.93308.h5\n",
      "Epoch 19/100\n",
      "552/552 [==============================] - 595s 1s/step - loss: 0.0208 - acc: 0.9939 - val_loss: 0.2990 - val_acc: 0.9321\n",
      "\n",
      "Epoch 00019: val_acc did not improve from 0.93308\n",
      "Epoch 20/100\n",
      "552/552 [==============================] - 590s 1s/step - loss: 0.0212 - acc: 0.9930 - val_loss: 0.2782 - val_acc: 0.9351\n",
      "\n",
      "Epoch 00020: val_acc improved from 0.93308 to 0.93512, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_020-acc_0.99297-val_acc_0.93512.h5\n",
      "Epoch 21/100\n",
      "552/552 [==============================] - 528s 957ms/step - loss: 0.0169 - acc: 0.9955 - val_loss: 0.2850 - val_acc: 0.9341\n",
      "\n",
      "Epoch 00021: val_acc did not improve from 0.93512\n",
      "\n",
      "Epoch 00021: ReduceLROnPlateau reducing learning rate to 1e-05.\n",
      "Epoch 22/100\n",
      "552/552 [==============================] - 527s 955ms/step - loss: 0.0184 - acc: 0.9948 - val_loss: 0.2824 - val_acc: 0.9361\n",
      "\n",
      "Epoch 00022: val_acc improved from 0.93512 to 0.93614, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_022-acc_0.99484-val_acc_0.93614.h5\n",
      "Epoch 23/100\n",
      "552/552 [==============================] - 526s 952ms/step - loss: 0.0179 - acc: 0.9949 - val_loss: 0.2856 - val_acc: 0.9351\n",
      "\n",
      "Epoch 00023: val_acc did not improve from 0.93614\n",
      "Epoch 24/100\n",
      "552/552 [==============================] - 522s 945ms/step - loss: 0.0170 - acc: 0.9958 - val_loss: 0.2892 - val_acc: 0.9355\n",
      "\n",
      "Epoch 00024: val_acc did not improve from 0.93614\n",
      "Epoch 25/100\n",
      "552/552 [==============================] - 520s 942ms/step - loss: 0.0150 - acc: 0.9960 - val_loss: 0.2896 - val_acc: 0.9361\n",
      "\n",
      "Epoch 00025: val_acc did not improve from 0.93614\n",
      "Epoch 26/100\n",
      "552/552 [==============================] - 523s 948ms/step - loss: 0.0154 - acc: 0.9955 - val_loss: 0.2874 - val_acc: 0.9355\n",
      "\n",
      "Epoch 00026: val_acc did not improve from 0.93614\n",
      "Epoch 27/100\n",
      "552/552 [==============================] - 525s 951ms/step - loss: 0.0160 - acc: 0.9957 - val_loss: 0.2923 - val_acc: 0.9378\n",
      "\n",
      "Epoch 00027: val_acc improved from 0.93614 to 0.93784, saving model to ../tmp/ckpt-EfficientNet-B5-9.6.10-01-Epoch_027-acc_0.99586-val_acc_0.93784.h5\n",
      "Epoch 28/100\n",
      "552/552 [==============================] - 527s 955ms/step - loss: 0.0155 - acc: 0.9957 - val_loss: 0.2910 - val_acc: 0.9348\n",
      "\n",
      "Epoch 00028: val_acc did not improve from 0.93784\n",
      "Epoch 29/100\n",
      "552/552 [==============================] - 526s 953ms/step - loss: 0.0153 - acc: 0.9961 - val_loss: 0.2958 - val_acc: 0.9327\n",
      "\n",
      "Epoch 00029: val_acc did not improve from 0.93784\n",
      "Epoch 30/100\n",
      "552/552 [==============================] - 519s 941ms/step - loss: 0.0145 - acc: 0.9963 - val_loss: 0.2958 - val_acc: 0.9365\n",
      "\n",
      "Epoch 00030: val_acc did not improve from 0.93784\n",
      "Epoch 31/100\n",
      "552/552 [==============================] - 521s 944ms/step - loss: 0.0121 - acc: 0.9968 - val_loss: 0.2871 - val_acc: 0.9355\n",
      "\n",
      "Epoch 00031: val_acc did not improve from 0.93784\n",
      "Epoch 32/100\n",
      "552/552 [==============================] - 521s 943ms/step - loss: 0.0161 - acc: 0.9949 - val_loss: 0.2938 - val_acc: 0.9358\n",
      "\n",
      "Epoch 00032: val_acc did not improve from 0.93784\n",
      "Epoch 33/100\n",
      "552/552 [==============================] - 522s 945ms/step - loss: 0.0143 - acc: 0.9961 - val_loss: 0.2735 - val_acc: 0.9372\n",
      "\n",
      "Epoch 00033: val_acc did not improve from 0.93784\n",
      "Epoch 34/100\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "552/552 [==============================] - 527s 955ms/step - loss: 0.0120 - acc: 0.9966 - val_loss: 0.2875 - val_acc: 0.9317\n",
      "\n",
      "Epoch 00034: val_acc did not improve from 0.93784\n",
      "Epoch 35/100\n",
      "552/552 [==============================] - 527s 954ms/step - loss: 0.0128 - acc: 0.9962 - val_loss: 0.2985 - val_acc: 0.9361\n",
      "\n",
      "Epoch 00035: val_acc did not improve from 0.93784\n",
      "Epoch 36/100\n",
      "552/552 [==============================] - 523s 947ms/step - loss: 0.0125 - acc: 0.9964 - val_loss: 0.2898 - val_acc: 0.9372\n",
      "\n",
      "Epoch 00036: val_acc did not improve from 0.93784\n",
      "Epoch 37/100\n",
      "552/552 [==============================] - 523s 947ms/step - loss: 0.0108 - acc: 0.9973 - val_loss: 0.3014 - val_acc: 0.9338\n",
      "\n",
      "Epoch 00037: val_acc did not improve from 0.93784\n",
      "Epoch 38/100\n",
      "552/552 [==============================] - 524s 949ms/step - loss: 0.0125 - acc: 0.9967 - val_loss: 0.2935 - val_acc: 0.9324\n",
      "\n",
      "Epoch 00038: val_acc did not improve from 0.93784\n",
      "Epoch 39/100\n",
      "552/552 [==============================] - 527s 954ms/step - loss: 0.0102 - acc: 0.9972 - val_loss: 0.2989 - val_acc: 0.9331\n",
      "\n",
      "Epoch 00039: val_acc did not improve from 0.93784\n",
      "Epoch 40/100\n",
      "552/552 [==============================] - 523s 947ms/step - loss: 0.0105 - acc: 0.9972 - val_loss: 0.2976 - val_acc: 0.9351\n",
      "\n",
      "Epoch 00040: val_acc did not improve from 0.93784\n",
      "Epoch 41/100\n",
      "552/552 [==============================] - 525s 951ms/step - loss: 0.0111 - acc: 0.9970 - val_loss: 0.3022 - val_acc: 0.9331\n",
      "\n",
      "Epoch 00041: val_acc did not improve from 0.93784\n",
      "Epoch 42/100\n",
      "552/552 [==============================] - 523s 947ms/step - loss: 0.0103 - acc: 0.9970 - val_loss: 0.2991 - val_acc: 0.9344\n",
      "\n",
      "Epoch 00042: val_acc did not improve from 0.93784\n",
      "Epoch 43/100\n",
      "552/552 [==============================] - 521s 944ms/step - loss: 0.0093 - acc: 0.9976 - val_loss: 0.3011 - val_acc: 0.9324\n",
      "\n",
      "Epoch 00043: val_acc did not improve from 0.93784\n",
      "Epoch 44/100\n",
      "552/552 [==============================] - 529s 958ms/step - loss: 0.0101 - acc: 0.9971 - val_loss: 0.2967 - val_acc: 0.9351\n",
      "\n",
      "Epoch 00044: val_acc did not improve from 0.93784\n",
      "Epoch 45/100\n",
      "552/552 [==============================] - 523s 948ms/step - loss: 0.0098 - acc: 0.9974 - val_loss: 0.3096 - val_acc: 0.9310\n",
      "\n",
      "Epoch 00045: val_acc did not improve from 0.93784\n",
      "Epoch 46/100\n",
      "552/552 [==============================] - 523s 947ms/step - loss: 0.0089 - acc: 0.9979 - val_loss: 0.3002 - val_acc: 0.9338\n",
      "\n",
      "Epoch 00046: val_acc did not improve from 0.93784\n",
      "Epoch 47/100\n",
      "552/552 [==============================] - 525s 951ms/step - loss: 0.0089 - acc: 0.9975 - val_loss: 0.3151 - val_acc: 0.9331\n",
      "\n",
      "Epoch 00047: val_acc did not improve from 0.93784\n",
      "Epoch 00047: early stopping\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x7efd1c6c4dd8>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.compile(optimizer=Adam(lr=1e-4), loss='categorical_crossentropy', metrics=['accuracy'])\n",
    "\n",
    "model.fit_generator(\n",
    "    train_g,\n",
    "    # steps_per_epoch=100,\n",
    "    steps_per_epoch=train_g.n // batch_size,\n",
    "    epochs=100,\n",
    "    class_weight=d_class_weights,\n",
    "    callbacks=[ckpt, estop,reduce_lr,csv_logger],\n",
    "    validation_data=valid_g,\n",
    "    # validation_steps=1,\n",
    "    validation_steps=valid_g.n // batch_size\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EfficientNet-B5-8.31.1-1.ipynb\t  InceptionResNetV2-8.27.4-1.ipynb\r\n",
      "EfficientNet-B5-8.31.2-23.ipynb   InceptionResNetV2-8.28.1-1.ipynb\r\n",
      "EfficientNet-B5-9.1.1-2.ipynb\t  InceptionResNetV2-8.28.2-2.ipynb\r\n",
      "EfficientNet-B5-9.1.2-3.ipynb\t  InceptionResNetV2-8.29.1-0.ipynb\r\n",
      "EfficientNet-B5-9.1.3-1.ipynb\t  InceptionResNetV2-8.29.2-1.ipynb\r\n",
      "EfficientNet-B5-9.1.4-0.ipynb\t  InceptionResNetV2-8.29.3-2.ipynb\r\n",
      "EfficientNet-B5-9.1.5-3.ipynb\t  InceptionResNetV2-8.29.4-3.ipynb\r\n",
      "EfficientNet-B5-9.1.8-3.ipynb\t  InceptionResNetV2-8.29.5-3.ipynb\r\n",
      "EfficientNet-B5-9.1.9-1.ipynb\t  InceptionResNetV2-LGBM-8.29.1-0.ipynb\r\n",
      "EfficientNet-B5-9.2.1-0.ipynb\t  InceptionResNetV2-Xception-8.27.1-1.ipynb\r\n",
      "EfficientNet-B5-9.2.10-2.ipynb\t  InceptionResNetV2-Xception-8.27.4-3.ipynb\r\n",
      "EfficientNet-B5-9.2.11-3.ipynb\t  InceptionResNetV2-Xception-8.29.1-0.ipynb\r\n",
      "EfficientNet-B5-9.2.2-2.ipynb\t  InceptionResNetV2-Xception-8.30.1-2.ipynb\r\n",
      "EfficientNet-B5-9.2.3-3.ipynb\t  InceptionResNetV2-Xception-8.30.2-1.ipynb\r\n",
      "EfficientNet-B5-9.2.4-1.ipynb\t  InceptionResNetV2-Xception-8.30.3-0.ipynb\r\n",
      "EfficientNet-B5-9.2.5-0.ipynb\t  NASNetLarge-8.22.1-0.ipynb\r\n",
      "EfficientNet-B5-9.2.6-1.ipynb\t  NASNetLarge-8.22.2-1.ipynb\r\n",
      "EfficientNet-B5-9.2.7-2.ipynb\t  NASNetLarge-8.22.3-2.ipynb\r\n",
      "EfficientNet-B5-9.2.8-3.ipynb\t  NASNetLarge-8.22.4-3.ipynb\r\n",
      "EfficientNet-B5-9.2.9-1.ipynb\t  NASNetLarge-8.22.5-1.ipynb\r\n",
      "EfficientNet-B5-9.3.1-0.ipynb\t  Xception-8.29.1-0.ipynb\r\n",
      "EfficientNet-B5-9.3.11-0.ipynb\t  Xception-8.29.2-1.ipynb\r\n",
      "EfficientNet-B5-9.3.12-1.ipynb\t  Xception-8.29.3-2.ipynb\r\n",
      "EfficientNet-B5-9.3.13-2.ipynb\t  __init__.py\r\n",
      "EfficientNet-B5-9.3.14-3.ipynb\t  __pycache__\r\n",
      "EfficientNet-B5-9.3.2-2.ipynb\t  baseline-BCNN-InceptionResNetV2.ipynb\r\n",
      "EfficientNet-B5-9.3.3-1.ipynb\t  baseline-EfficientNet-B4.ipynb\r\n",
      "EfficientNet-B5-9.3.4-3.ipynb\t  baseline-EfficientNet-B5.ipynb\r\n",
      "EfficientNet-B5-9.3.5-0.ipynb\t  baseline-EfficientNet-B6.ipynb\r\n",
      "EfficientNet-B5-9.3.6-2.ipynb\t  baseline-EfficientNet-B7.ipynb\r\n",
      "EfficientNet-B5-9.3.7-1.ipynb\t  baseline-InceptionResNetV2-Xception.ipynb\r\n",
      "EfficientNet-B5-9.3.8-3.ipynb\t  baseline-InceptionResNetV2.ipynb\r\n",
      "EfficientNet-B5-9.4.1-0.ipynb\t  baseline-NASNetLarge.ipynb\r\n",
      "EfficientNet-B5-9.4.10-3.ipynb\t  baseline-ResNeXt50.ipynb\r\n",
      "EfficientNet-B5-9.4.11-0.ipynb\t  baseline-Xception.ipynb\r\n",
      "EfficientNet-B5-9.4.12-1.ipynb\t  config.json\r\n",
      "EfficientNet-B5-9.4.13-2.ipynb\t  customize_service.py\r\n",
      "EfficientNet-B5-9.4.14-3.ipynb\t  efficientnet-b5.tar.gz\r\n",
      "EfficientNet-B5-9.4.2-1.ipynb\t  exp1.8.16.ipynb\r\n",
      "EfficientNet-B5-9.4.3-2.ipynb\t  exp1.8.17.1.ipynb\r\n",
      "EfficientNet-B5-9.4.4-3.ipynb\t  exp1.8.17.2.ipynb\r\n",
      "EfficientNet-B5-9.4.5-2.ipynb\t  exp1.8.17.3.ipynb\r\n",
      "EfficientNet-B5-9.4.6-0.ipynb\t  exp1.8.18.1.ipynb\r\n",
      "EfficientNet-B5-9.4.7-1.ipynb\t  exp1.8.18.2.ipynb\r\n",
      "EfficientNet-B5-9.4.8-2.ipynb\t  exp1.8.19.1.ipynb\r\n",
      "EfficientNet-B5-9.4.9-3.ipynb\t  exp1.8.19.2.ipynb\r\n",
      "EfficientNet-B5-9.5.1-0.ipynb\t  exp1.ipynb\r\n",
      "EfficientNet-B5-9.5.10-1.ipynb\t  exp15-2.ipynb\r\n",
      "EfficientNet-B5-9.5.12-0.ipynb\t  exp2.8.16.2.ipynb\r\n",
      "EfficientNet-B5-9.5.13-1.ipynb\t  exp2.8.16.ipynb\r\n",
      "EfficientNet-B5-9.5.14-2.ipynb\t  exp2.8.17.1.ipynb\r\n",
      "EfficientNet-B5-9.5.15-3.ipynb\t  exp2.8.17.2.ipynb\r\n",
      "EfficientNet-B5-9.5.2-1.ipynb\t  exp2.8.17.3.ipynb\r\n",
      "EfficientNet-B5-9.5.3-2.ipynb\t  exp2.8.17.4.ipynb\r\n",
      "EfficientNet-B5-9.5.4-3.ipynb\t  exp2.8.17.5.ipynb\r\n",
      "EfficientNet-B5-9.5.5-0.ipynb\t  exp2.8.18.1.ipynb\r\n",
      "EfficientNet-B5-9.5.6-1.ipynb\t  exp2.8.18.2.ipynb\r\n",
      "EfficientNet-B5-9.5.7-2.ipynb\t  exp2.8.18.3.ipynb\r\n",
      "EfficientNet-B5-9.5.8-3.ipynb\t  exp2.8.19.1.ipynb\r\n",
      "EfficientNet-B5-9.5.9-0.ipynb\t  exp2.8.19.2.ipynb\r\n",
      "EfficientNet-B5-9.6.1-0.ipynb\t  exp2.8.21.1.ipynb\r\n",
      "EfficientNet-B5-9.6.10-01.ipynb   exp2.ipynb\r\n",
      "EfficientNet-B5-9.6.2-1.ipynb\t  exp3.8.16.2.ipynb\r\n",
      "EfficientNet-B5-9.6.4-3.ipynb\t  exp3.8.16.ipynb\r\n",
      "EfficientNet-B5-9.6.5-0.ipynb\t  exp3.8.17.1.ipynb\r\n",
      "EfficientNet-B5-9.6.6-1.ipynb\t  exp3.8.17.2.ipynb\r\n",
      "EfficientNet-B5-9.6.7-2.ipynb\t  exp3.8.17.3.ipynb\r\n",
      "EfficientNet-B5-9.6.8-0.ipynb\t  exp3.8.18.1.ipynb\r\n",
      "EfficientNet-B5-9.6.9-23.ipynb\t  exp3.8.18.2.ipynb\r\n",
      "EfficientNet-B7-9.1.1-2.ipynb\t  exp3.8.19.1.ipynb\r\n",
      "EfficientNet-B7-9.6.3-2.ipynb\t  exp3.8.19.2.ipynb\r\n",
      "InceptionResNetV2-8.24.1-3.ipynb  exp3.ipynb\r\n",
      "InceptionResNetV2-8.25.1-0.ipynb  exp4.8.16.ipynb\r\n",
      "InceptionResNetV2-8.25.2-1.ipynb  exp4.8.17.1.ipynb\r\n",
      "InceptionResNetV2-8.25.3-2.ipynb  exp4.8.17.2.ipynb\r\n",
      "InceptionResNetV2-8.26.1-0.ipynb  exp4.8.18.1.ipynb\r\n",
      "InceptionResNetV2-8.26.2-1.ipynb  exp4.8.18.2.ipynb\r\n",
      "InceptionResNetV2-8.26.3-2.ipynb  exp4.8.19.1.ipynb\r\n",
      "InceptionResNetV2-8.26.4-3.ipynb  exp4.8.19.2.ipynb\r\n",
      "InceptionResNetV2-8.26.5-3.ipynb  exp4.ipynb\r\n",
      "InceptionResNetV2-8.27.1-0.ipynb  preprocess.py\r\n",
      "InceptionResNetV2-8.27.2-1.ipynb  train_0813.py\r\n",
      "InceptionResNetV2-8.27.3-2.ipynb  试验记录.md\r\n"
     ]
    }
   ],
   "source": [
    "!ls"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
